Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Maven failing to resolve recursive dependencies with multiple repositories

Tags:

I'm new to maven so there must be something I don't understand. But, I've added multiple repositories to resolve multiple dependencies in my POM file. For some reason its failing while pulling a recursive dependency. I'm dependent on spring and spring depends upon jms, and it can't find jms. I'm not sure who tells maven where to find jms is it me or is it inside the POM for spring? Anyway I've tried adding another repository that contains jms, but it still says it can't find it. Here is my POM.xml:

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"          xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">     <modelVersion>4.0.0</modelVersion>     <groupId>com.mycompany</groupId>     <artifactId>app</artifactId>     <packaging>war</packaging>     <version>1.0-SNAPSHOT</version>     <name>app</name>     <url>http://maven.apache.org</url>     <repositories>         <repository>             <id>sonatype-nexus-snapshots</id>             <name>Sonatype</name>             <url>http://repository.sonatype.org</url>         </repository>         <repository>             <snapshots/>             <id>repo.pentaho.org</id>             <name>repo.pentaho.org-snapshots</name>             <url>http://repository.pentaho.org/artifactory/pentaho</url>         </repository>         <repository>             <id>thirdparty.pentaho.org</id>             <name>repo.pentaho.org-snapshots</name>             <url>http://repository.pentaho.org/artifactory/thirdparty</url>         </repository>         <repository>             <id>com.springsource.repository.bundles.release</id>             <name>EBR Spring Release Repository</name>             <url>http://repository.springsource.com/maven/bundles/release</url>         </repository>         <repository>             <id>com.springsource.repository.bundles.external</id>             <name>EBR External Release Repository</name>             <url>http://repository.springsource.com/maven/bundles/external</url>         </repository>     </repositories>      <properties>         <org.springframework.version>3.0.5.RELEASE</org.springframework.version>     </properties>      <dependencies>         <dependency>             <groupId>junit</groupId>             <artifactId>junit</artifactId>             <version>3.8.1</version>             <scope>test</scope>         </dependency>          <dependency>             <groupId>mysql</groupId>             <artifactId>mysql-connector-java</artifactId>             <version>5.1.18</version>             <scope>runtime</scope>         </dependency>          <dependency>             <groupId>log4j</groupId>             <artifactId>log4j</artifactId>             <version>1.2.15</version>             <scope>runtime</scope>         </dependency>          <dependency>             <groupId>commons-collections</groupId>             <artifactId>commons-collections</artifactId>             <version>3.2.1</version>             <scope>runtime</scope>         </dependency>          <dependency>             <groupId>commons-codec</groupId>             <artifactId>commons-codec</artifactId>             <version>1.4</version>             <scope>runtime</scope>         </dependency>          <dependency>             <groupId>commons-logging</groupId>             <artifactId>commons-logging</artifactId>             <version>1.1.1</version>             <scope>runtime</scope>         </dependency>          <dependency>             <groupId>commons-lang</groupId>             <artifactId>commons-lang</artifactId>             <version>2.3</version>             <scope>runtime</scope>         </dependency>          <dependency>             <groupId>net.sf.flexjson</groupId>             <artifactId>flexjson</artifactId>             <version>2.1</version>             <scope>runtime</scope>         </dependency>          <dependency>             <groupId>javax.mail</groupId>             <artifactId>mail</artifactId>             <version>1.4.1</version>             <scope>runtime</scope>         </dependency>          <dependency>             <groupId>com.jcraft</groupId>             <artifactId>jsch</artifactId>             <version>0.1.43</version>             <scope>runtime</scope>         </dependency>          <dependency>             <groupId>org.olap4j</groupId>             <artifactId>olap4j</artifactId>             <version>1.0.0-SNAPSHOT</version>             <scope>runtime</scope>         </dependency>          <dependency>             <groupId>org.olap4j</groupId>             <artifactId>olap4j-xmla</artifactId>             <version>1.0.0-SNAPSHOT</version>             <scope>runtime</scope>         </dependency>          <dependency>             <groupId>pentaho</groupId>             <artifactId>mondrian</artifactId>             <version>3.3-SNAPSHOT</version>             <scope>runtime</scope>         </dependency>          <dependency>             <groupId>org.springframework</groupId>             <artifactId>spring-aop</artifactId>             <version>${org.springframework.version}</version>             <scope>runtime</scope>         </dependency>          <dependency>             <groupId>org.springframework</groupId>             <artifactId>spring-asm</artifactId>             <version>${org.springframework.version}</version>             <scope>runtime</scope>         </dependency>          <dependency>             <groupId>org.springframework</groupId>             <artifactId>spring-aspects</artifactId>             <version>${org.springframework.version}</version>             <scope>runtime</scope>         </dependency>          <dependency>             <groupId>org.springframework</groupId>             <artifactId>spring-beans</artifactId>             <version>${org.springframework.version}</version>             <scope>runtime</scope>         </dependency>          <dependency>             <groupId>org.springframework</groupId>             <artifactId>spring-context</artifactId>             <version>${org.springframework.version}</version>             <scope>runtime</scope>         </dependency>          <dependency>             <groupId>org.springframework</groupId>             <artifactId>spring-context-support</artifactId>             <version>${org.springframework.version}</version>             <scope>runtime</scope>         </dependency>          <dependency>             <groupId>org.springframework</groupId>             <artifactId>spring-core</artifactId>             <version>${org.springframework.version}</version>             <scope>runtime</scope>         </dependency>          <dependency>             <groupId>org.springframework</groupId>             <artifactId>spring-expression</artifactId>             <version>${org.springframework.version}</version>             <scope>runtime</scope>         </dependency>          <dependency>             <groupId>org.springframework</groupId>             <artifactId>spring-jdbc</artifactId>             <version>${org.springframework.version}</version>             <scope>runtime</scope>         </dependency>          <dependency>             <groupId>org.springframework</groupId>             <artifactId>spring-jms</artifactId>             <version>${org.springframework.version}</version>             <scope>runtime</scope>         </dependency>          <dependency>             <groupId>org.springframework</groupId>             <artifactId>spring-orm</artifactId>             <version>${org.springframework.version}</version>             <scope>runtime</scope>         </dependency>          <dependency>             <groupId>org.springframework</groupId>             <artifactId>spring-oxm</artifactId>             <version>${org.springframework.version}</version>             <scope>runtime</scope>         </dependency>          <dependency>             <groupId>org.springframework</groupId>             <artifactId>spring-tx</artifactId>             <version>${org.springframework.version}</version>             <scope>runtime</scope>         </dependency>          <dependency>             <groupId>org.springframework</groupId>             <artifactId>spring-web</artifactId>             <version>${org.springframework.version}</version>             <scope>runtime</scope>         </dependency>          <dependency>             <groupId>org.springframework</groupId>             <artifactId>spring-webmvc</artifactId>             <version>${org.springframework.version}</version>             <scope>runtime</scope>         </dependency>     </dependencies>      <build>         <plugins>             <plugin>                 <groupId>org.apache.maven.plugins</groupId>                 <artifactId>maven-compiler-plugin</artifactId>                 <version>2.0.2</version>                 <configuration>                     <source>1.6</source>                     <target>1.6</target>                 </configuration>             </plugin>         </plugins>     </build> </project> 

The failure message I get is horrible to read, but here it is:

[ERROR] Failed to execute goal on project archiver:     Could not resolve dependencies for     project com.fuseanalytics:archiver:war:1.0-SNAPSHOT:     The following artifacts could not be resolved:     javax.jms:jms:jar:1.1,     com.sun.jdmk:jmxtools:jar:1.2.1,     com.sun.jmx:jmxri:jar:1.2.1:     Could not transfer artifact javax.jms:jms:jar:1.1     from/to java.net (https://maven-repository.dev.java.net/nonav/repository):     No connector available to access repository     java.net (https://maven-repository.dev.java.net/nonav/repository)     of type legacy using the available factories WagonRepositoryConnectorFactory     -> [Help 1] 

Why is it failing to pull this dependency? Is it the HTTPS? When I navigate to the URL (https://maven-repository.dev.java.net/nonav/repository) it is not there anymore. What do I do in this case?

Updated: Originally I had asked about a slightly different problem, but figured that how because I had an erroneous space in the hostname of my dependencies. Once I removed that I encountered a new error message.

like image 325
chubbsondubs Avatar asked Oct 25 '11 19:10

chubbsondubs


People also ask

What is Dependencymanagement in POM xml?

The dependency management section is a mechanism for centralizing dependency information. When you have a set of projects that inherit from a common parent, it's possible to put all information about the dependency in the common POM and have simpler references to the artifacts in the child POMs.

What is Dependencymanagement in Maven?

What Is Maven Dependency Management? Dependency management in Maven allows teams to manage dependencies for multi-module projects and applications. These can consist of hundreds or even thousands of modules. Using Maven can help teams define, create, and maintain reproducible builds.


2 Answers

Just got this problem: log4j version 1.2.15 is causing this problem. Using log4j version 1.12.16 removes this problem. see Missing artifact com.sun.jdmk:jmxtools:jar:1.2.1

like image 160
nonoygalsim Avatar answered Nov 27 '22 16:11

nonoygalsim


It looks like you are running Maven 3+ and you are trying to access a legacy repository.

One annoying but well documented change for Maven 3 was removing support for legacy repositories. You can check out this compatibility note and others here

If you are not depending completely on Maven 3 you can reduce to Maven 2.2.1 and this legacy issue should go away or follow what the link says and create a

Maven 2.x compatible view of the legacy repository

like image 44
John Vint Avatar answered Nov 27 '22 15:11

John Vint