[ 
https://jira.codehaus.org/browse/MNG-5121?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=279446#comment-279446
 ] 

Steven Schlansker commented on MNG-5121:
----------------------------------------

I downloaded Henning's POM file, and tested it locally.  With the versions that 
included the same dependency loop, the compile fails with 

Compilation failure: Compilation failure:
[ERROR] 
/Volumes/Zoom/code/maven-bugs/mng-5121-a/src/main/java/testing/Badness.java:[3,19]
 package javax.inject does not exist
[ERROR] 
/Volumes/Zoom/code/maven-bugs/mng-5121-a/src/main/java/testing/Badness.java:[7,27]
 cannot find symbol

which matches the problem as described.  When I remove the dependency loop, it 
prints out many "[WARNING] The POM for io.trumpet.components:tc-config:jar:4.0 
is missing, no dependency information available" but compiles and runs 
successfully.

Additionally, downloading the new aether jars as you suggest fixed both the 
test case I had and Henning's test case.

So I am suspecting that it is actually the same problem - do you have any other 
reason to believe it is not?

> 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.1, 3.0.2, 3.0.3
>         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, 
> mng-5121.tgz
>
>
> 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