You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@maven.apache.org by "Ryan Stewart (JIRA)" <ji...@codehaus.org> on 2010/09/17 20:13:32 UTC

[jira] Created: (MNG-4821) Wrong spring-context version resolved when depending on artifact with dependency management and jersey-spring dependency

Wrong spring-context version resolved when depending on artifact with dependency management and jersey-spring dependency
------------------------------------------------------------------------------------------------------------------------

                 Key: MNG-4821
                 URL: http://jira.codehaus.org/browse/MNG-4821
             Project: Maven 2 & 3
          Issue Type: Bug
          Components: Dependencies
    Affects Versions: 2.2.1
         Environment: Ubuntu 10.04 64-bit, jdk6
Windows 7 64-bit, Cygwin, jdk6
Windows XP SP3 32-bit, Cygwin, jdk5
            Reporter: Ryan Stewart
         Attachments: dependency-versions.zip

Given two artifacts, A and B:
- A depends on B and on org.springframework:spring-context:3.0.1.RELEASE
- B depends on com.sun.jersey.contribs:jersey-spring:1.2 and has a dependency management entry that sets the version for org.springframework:spring-context to 3.0.2.RELEASE
- com.sun.jersey.contribs:jersey-spring:1.2 depends on org.springframework:spring-context:[2.5.2,3)

When B is built, maven uses org.springframework:spring-context:jar:3.0.2.RELEASE, as expected.
When A is built, maven 2 uses org.springframework:spring-context:jar:2.5.6, and maven 3 uses version 2.5.6.SEC02.

I'm attaching a sample project that demonstrates the bug. There are two poms: dependent and dependee. These correspond to A and B above, respectively. The top-level pom just includes the other two for ease of building. In the real-life situation where I found the problem, the two artifacts are from separate projects. There is no unit test, since I don't even know how I'd write a test for this, but there is a bash script called test.sh that checks for the problem.

-- 
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

        

[jira] Closed: (MNG-4821) Wrong spring-context version resolved when depending on artifact with dependency management and jersey-spring dependency

Posted by "Benjamin Bentmann (JIRA)" <ji...@codehaus.org>.
     [ http://jira.codehaus.org/browse/MNG-4821?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Benjamin Bentmann closed MNG-4821.
----------------------------------

    Resolution: Duplicate
      Assignee: Benjamin Bentmann

Thanks for the example projects. When building A, B's dependencyManagement is ignored (MNG-3038) such that the dependeny graph for A contains the original {{spring-context:[2.5.2,3)}} dependency as given by {{jersey-spring:1.2}}. Futhermore, a version range overrules any soft version recommendations like the {{3.0.1.RELEASE}} given in A's POM. That's why A ends up with {{spring-context:jar:2.5.x}}.

For now, you need to use dependency management in A to enforce the version of {{spring-context}} you want.

bq. When A is built, maven 2 uses org.springframework:spring-context:jar:2.5.6, and maven 3 uses version 2.5.6.SEC02.
This minor difference is the effect of improved version comparision in Maven 3 which properly recognizes {{2.5.6}} < {{2.5.6.SEC01}} < {{2.5.6.SEC02}}.

> Wrong spring-context version resolved when depending on artifact with dependency management and jersey-spring dependency
> ------------------------------------------------------------------------------------------------------------------------
>
>                 Key: MNG-4821
>                 URL: http://jira.codehaus.org/browse/MNG-4821
>             Project: Maven 2 & 3
>          Issue Type: Bug
>          Components: Dependencies
>    Affects Versions: 2.2.1
>         Environment: Ubuntu 10.04 64-bit, jdk6
> Windows 7 64-bit, Cygwin, jdk6
> Windows XP SP3 32-bit, Cygwin, jdk5
>            Reporter: Ryan Stewart
>            Assignee: Benjamin Bentmann
>         Attachments: dependency-versions.zip
>
>
> Given two artifacts, A and B:
> - A depends on B and on org.springframework:spring-context:3.0.1.RELEASE
> - B depends on com.sun.jersey.contribs:jersey-spring:1.2 and has a dependency management entry that sets the version for org.springframework:spring-context to 3.0.2.RELEASE
> - com.sun.jersey.contribs:jersey-spring:1.2 depends on org.springframework:spring-context:[2.5.2,3)
> When B is built, maven uses org.springframework:spring-context:jar:3.0.2.RELEASE, as expected.
> When A is built, maven 2 uses org.springframework:spring-context:jar:2.5.6, and maven 3 uses version 2.5.6.SEC02.
> I'm attaching a sample project that demonstrates the bug. There are two poms: dependent and dependee. These correspond to A and B above, respectively. The top-level pom just includes the other two for ease of building. In the real-life situation where I found the problem, the two artifacts are from separate projects. There is no unit test, since I don't even know how I'd write a test for this, but there is a bash script called test.sh that checks for the problem.

-- 
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