maven seems to lose transitive dependencies from the list of compilation 
dependencies
-------------------------------------------------------------------------------------

                 Key: MNG-5121
                 URL: https://jira.codehaus.org/browse/MNG-5121
             Project: Maven 2 & 3
          Issue Type: Bug
          Components: Dependencies
    Affects Versions: 3.0.3, 3.0.2, 3.0.1
         Environment: Fedora Linux, Sun JDK 1.6.0_24, MacOS X 10.6.7, AppleJDK 
1.6.0_24
            Reporter: Henning Schmiedehausen
            Priority: Blocker
         Attachments: build_failed.log, build_successful.log, maven-pom.xml

See the attached build logs "build_failed.log" and "build_succesful.log". They 
were both created from using the attached POM. The only difference is that in 
the successful build the dependency

<dependency>                                                                    
                                                                            
  <groupId>com.google.inject</groupId>                                          
                                                                          
  <artifactId>guice</artifactId>                                                
                                                                          
  <version>3.0</version>                                                        
                                                                          
</dependency>       

is moved to the very top of the dependency list.  When diffing the two build 
logs, the most important difference is that in the failed log maven picks up 
these dependencies:

[DEBUG]    com.google.inject:guice:jar:3.0:compile

while in the successful build, the same dependency looks like this:


[DEBUG]    com.google.inject:guice:jar:3.0:compile                              
  
[DEBUG]       javax.inject:javax.inject:jar:1:compile                           
  
[DEBUG]       aopalliance:aopalliance:jar:1.0:         

This translates for the successful build into:

[DEBUG] Classpath: 
[/Users/henning/private/source/services/thetargetproject/target/classes         
                                                                 
 /Users/henning/.m2/repository/com/google/inject/guice/3.0/guice-3.0.jar        
                                                                                
    
 /Users/henning/.m2/repository/javax/inject/javax.inject/1/javax.inject-1.jar   
   
[...]

and for the failed build:

[DEBUG] Classpath: [...]
 /Users/henning/.m2/repository/com/google/inject/guice/3.0/guice-3.0.jar        
                                                                                
    
[...]

(note that even for the successful build, the aopalliance dependency still got 
dropped).

This behaviour started with maven 3.x, all permutations of the dependencies 
build fine with maven 2.2.1

This problem can be reproduced in all maven 3.0.x versions (.1, .2 and .3).

In both cases, the transitive dependencies of guice 3.0 
(javax.inject:javax.inject and aopalliance:aopalliance) should always be 
present.

The same behaviour occurs in the exec-maven-plugin which uses the runtime 
dependency path to execute java code.

--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

Reply via email to