Transitive Dependency Resolution silently fails if parent pom cannot be 
retrieved from repository
-------------------------------------------------------------------------------------------------

                 Key: MNG-4475
                 URL: http://jira.codehaus.org/browse/MNG-4475
             Project: Maven 2
          Issue Type: Bug
    Affects Versions: 3.0-alpha-5, 3.0-alpha-4
         Environment: Java 1.6_15, Mac OS X 10.6.2
            Reporter: Sven Panko


While preparing our projects to be migrated from Maven 2 (currently using 
2.2.1) to Maven 3 (3.0-alpha-5) I faced a problem concerning transitive 
dependencies. I had the following setup:

3 projects:
* a parent project (PARENT)
* Project A (parent = PARENT with lots of 3rd party libs as dependencies)
* Project B (parent = PARENT and declares Project A to be a dependency)

I tried to build Project B using Maven 3 but the build failed, because Project 
A's transitive dependencies were not resolved. When trying to build the same 
project using Maven 2 it successfully picked up the transitive dependencies. 
After a bit of searching I activated the error stacktraces and saw the 
following exception when running the project's build with Maven 3:

[DEBUG] Unable to find resource 'PARENT:pom:0.4-SNAPSHOT' in repository 
internal-snapshots (https://foo.bar/maven/internal-snapshots)
org.apache.maven.wagon.ResourceDoesNotExistException: Failure to resolve 
PARENT/0.1-SNAPSHOT/PARENT-0.4-SNAPSHOT.pom from 
https://foo.bar/maven/internal-snapshots was cached in the local repository. 
Resolution will not be reattempted until the update interval of 
internal-snapshots has elapsed or updates are forced.
        at 
org.apache.maven.repository.legacy.DefaultWagonManager.getArtifact(DefaultWagonManager.java:114)
        at 
org.apache.maven.repository.legacy.DefaultWagonManager.getArtifact(DefaultWagonManager.java:131)
        at 
org.apache.maven.artifact.resolver.DefaultArtifactResolver.resolve(DefaultArtifactResolver.java:215)
        at 
org.apache.maven.artifact.resolver.DefaultArtifactResolver.resolve(DefaultArtifactResolver.java:461)
        at 
org.apache.maven.repository.legacy.LegacyRepositorySystem.resolve(LegacyRepositorySystem.java:325)
        at 
org.apache.maven.project.RepositoryModelResolver.resolveModel(RepositoryModelResolver.java:171)
        at 
org.apache.maven.model.building.DefaultModelBuilder.readParentExternally(DefaultModelBuilder.java:567)
        at 
org.apache.maven.model.building.DefaultModelBuilder.readParent(DefaultModelBuilder.java:434)
        at 
org.apache.maven.model.building.DefaultModelBuilder.build(DefaultModelBuilder.java:179)
        at 
org.apache.maven.model.building.DefaultModelBuilder.build(DefaultModelBuilder.java:117)
        at 
org.apache.maven.project.DefaultProjectBuilder.build(DefaultProjectBuilder.java:112)
        at 
org.apache.maven.project.DefaultProjectBuilder.build(DefaultProjectBuilder.java:232)
        at 
org.apache.maven.project.DefaultProjectBuilder.build(DefaultProjectBuilder.java:191)
        at 
org.apache.maven.project.artifact.MavenMetadataSource.retrieveRelocatedProject(MavenMetadataSource.java:571)
        at 
org.apache.maven.project.artifact.MavenMetadataSource.retrieve(MavenMetadataSource.java:184)
        at 
org.apache.maven.repository.legacy.resolver.DefaultLegacyArtifactCollector.recurse(DefaultLegacyArtifactCollector.java:533)
        at 
org.apache.maven.repository.legacy.resolver.DefaultLegacyArtifactCollector.collect(DefaultLegacyArtifactCollector.java:150)
        at 
org.apache.maven.artifact.resolver.DefaultArtifactResolver.resolve(DefaultArtifactResolver.java:541)
        at 
org.apache.maven.repository.legacy.LegacyRepositorySystem.resolve(LegacyRepositorySystem.java:325)
        at 
org.apache.maven.DefaultProjectDependenciesResolver.resolve(DefaultProjectDependenciesResolver.java:152)
        at 
org.apache.maven.DefaultProjectDependenciesResolver.resolve(DefaultProjectDependenciesResolver.java:66)
        at 
org.apache.maven.lifecycle.DefaultLifecycleExecutor.resolveProjectDependencies(DefaultLifecycleExecutor.java:378)
        at 
org.apache.maven.lifecycle.DefaultLifecycleExecutor.execute(DefaultLifecycleExecutor.java:307)
        at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:245)
        at org.apache.maven.DefaultMaven.execute(DefaultMaven.java:102)
        at org.apache.maven.cli.MavenCli.execute(MavenCli.java:423)
        at org.apache.maven.cli.MavenCli.doMain(MavenCli.java:158)
        at org.apache.maven.cli.MavenCli.main(MavenCli.java:123)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at 
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
        at 
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
        at java.lang.reflect.Method.invoke(Method.java:597)
        at 
org.codehaus.plexus.classworlds.launcher.Launcher.launchEnhanced(Launcher.java:290)
        at 
org.codehaus.plexus.classworlds.launcher.Launcher.launch(Launcher.java:230)
        at 
org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode(Launcher.java:409)
        at 
org.codehaus.plexus.classworlds.launcher.Launcher.main(Launcher.java:352)
[WARNING] Invalid artifact metadata for projectA:jar:0.4.0: 1 problem was 
encountered while building the effective model for projectA:0.4.0
[FATAL] Non-resolvable parent POM PARENT:0.1-SNAPSHOT for projectA:0.4.0: 
Failed to resolve POM for PARENT:0.1-SNAPSHOT due to Missing:
...

The error message was of course correct, since the PARENT project wasn't 
properly installed in my local repo, and I will now attempt to fix that, but 
Maven 3 should not have swallowed this stacktrace, because it was totally 
unclear why transitive dependencies were not resolved (while Project A itself 
ended up on the classpath of Project B)

-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: 
http://jira.codehaus.org/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

Reply via email to