You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@maven.apache.org by "Craig S. Cottingham (JIRA)" <ji...@codehaus.org> on 2010/03/11 07:18:55 UTC

[jira] Created: (MNG-4584) Setting scope of transitive dependency can break version resolution

Setting scope of transitive dependency can break version resolution
-------------------------------------------------------------------

                 Key: MNG-4584
                 URL: http://jira.codehaus.org/browse/MNG-4584
             Project: Maven 2 & 3
          Issue Type: Bug
          Components: Dependencies
    Affects Versions: 2.2.1
         Environment: Apache Maven 2.2.1 (r801777; 2009-08-06 14:16:01-0500)
Java version: 1.5.0_19
Java home: /System/Library/Frameworks/JavaVM.framework/Versions/1.5.0/Home
Default locale: en_US, platform encoding: UTF-8
OS name: "mac os x" version: "10.4.11" arch: "ppc" Family: "unix"

            Reporter: Craig S. Cottingham


I have an artifact A which has a dependency with default scope on javax.mail:mail:1.4.1.

I have an artifact B which has a dependency with default scope on A, and a dependency with runtime scope on log4j:log4j:1.2.15, which apparently has a dependency on javax.mail:mail:1.4. The dependency on A is defined in the POM before the dependency on log4j.

When I run dependency:list or dependency:tree on B, I see that javax.mail:mail:1.4 is selected.

mvn -X compile on B shows (amidst all the other output):

...
[DEBUG]         javax.j2ee:j2ee:jar:1.3.1:compile (selected for compile)
[DEBUG]         javax.mail:mail:jar:1.4.1:compile (selected for compile)
[DEBUG]           javax.activation:activation:jar:1.1:compile (selected for compile)
...

So far, so good.

...
[DEBUG]               javax.mail:mail:jar:1.4:compile (removed - nearer found: 1.4.1)
...

As expected. This shows up several times in the output, for various dependencies not mentioned above.

...
[DEBUG]   javax.mail:mail:jar:1.4.1:provided
...

This shows up several times as well.

...
[DEBUG]   log4j:log4j:jar:1.2.15:runtime (selected for runtime)
[DEBUG]     javax.mail:mail:jar:1.4:runtime (setting scope to: compile)
[DEBUG]     javax.jms:jms:jar:1.1:runtime (selected for runtime)
...

And here we hit the problem. It looks like the selected version for javax.mail:mail is being changed to 1.4 when the scope on that runtime dependency is changed to compile.

The workaround for now is to add an explicit dependency on javax.mail:mail:1.4.1 to 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