You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@maven.apache.org by "David Bernhard (JIRA)" <ji...@codehaus.org> on 2008/04/04 09:48:58 UTC

[jira] Created: (MNG-3500) Include/Exclude of transitive dependencies depends on alphabetic order of module names.

Include/Exclude of transitive dependencies depends on alphabetic order of module names.
---------------------------------------------------------------------------------------

                 Key: MNG-3500
                 URL: http://jira.codehaus.org/browse/MNG-3500
             Project: Maven 2
          Issue Type: Bug
          Components: Dependencies
    Affects Versions: 2.0.8
         Environment: $ mvn -v
Maven version: 2.0.8-el4j-20071205
Java version: 1.5.0_15
OS name: "windows xp" version: "5.1" arch: "x86" Family: "windows"
            Reporter: David Bernhard
         Attachments: maven-issue.zip

Consider five projects A, B, C, D, E with dependencies (--> = depends-on)

A --> B, C
B --> D excluding E
C --> D
D --> E

In this scenario, as B comes before C alphabetically, dependency D of A is processed as in B and E is *not* included as a transitive dependency of A.
Removing the exclusion in B and putting it in C makes E appear.

To recreate the bug:
I have attached a small demo zip; after building all five projects run "mvn exec:java -Dexec.mainClass=test.A" in /A. Note that E is not included in the classpath. 

(I got this result:
file:/d:/Projects/maven-test/A/target/classes/
file:/d:/Projects/maven-test/A/target/test-classes
file:/d:/m2repository/test/B/1.0-SNAPSHOT/X-1.0-SNAPSHOT.jar
file:/d:/m2repository/test/D/1.0-SNAPSHOT/D-1.0-SNAPSHOT.jar
file:/d:/m2repository/test/C/1.0-SNAPSHOT/C-1.0-SNAPSHOT.jar )

Remove the exclusion of E in B's pom and put it in C's in the same place. Then remake all projects - E is now included 
(Sample oputput:
file:/d:/Projects/maven-test/A/target/classes/
file:/d:/Projects/maven-test/A/target/test-classes
file:/d:/m2repository/test/B/1.0-SNAPSHOT/B-1.0-SNAPSHOT.jar
file:/d:/m2repository/test/D/1.0-SNAPSHOT/D-1.0-SNAPSHOT.jar
file:/d:/m2repository/test/E/1.0-SNAPSHOT/E-1.0-SNAPSHOT.jar
file:/d:/m2repository/test/C/1.0-SNAPSHOT/C-1.0-SNAPSHOT.jar)

-- 
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] Commented: (MNG-3500) Include/Exclude of transitive dependencies depends on alphabetic order of module names.

Posted by "David Bernhard (JIRA)" <ji...@codehaus.org>.
    [ http://jira.codehaus.org/browse/MNG-3500?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=130505#action_130505 ] 

David Bernhard commented on MNG-3500:
-------------------------------------

This seems to be fixed in 2.0.9. It works again as specified in http://maven.apache.org/guides/introduction/introduction-to-dependency-mechanism.html : The first dependency wins.

> Include/Exclude of transitive dependencies depends on alphabetic order of module names.
> ---------------------------------------------------------------------------------------
>
>                 Key: MNG-3500
>                 URL: http://jira.codehaus.org/browse/MNG-3500
>             Project: Maven 2
>          Issue Type: Bug
>          Components: Dependencies
>    Affects Versions: 2.0.8
>         Environment: $ mvn -v
> Maven version: 2.0.8-el4j-20071205
> Java version: 1.5.0_15
> OS name: "windows xp" version: "5.1" arch: "x86" Family: "windows"
>            Reporter: David Bernhard
>         Attachments: maven-issue.zip
>
>
> Consider five projects A, B, C, D, E with dependencies (--> = depends-on)
> A --> B, C
> B --> D excluding E
> C --> D
> D --> E
> In this scenario, as B comes before C alphabetically, dependency D of A is processed as in B and E is *not* included as a transitive dependency of A.
> Removing the exclusion in B and putting it in C makes E appear.
> To recreate the bug:
> I have attached a small demo zip; after building all five projects run "mvn exec:java -Dexec.mainClass=test.A" in /A. Note that E is not included in the classpath. 
> (I got this result:
> file:/d:/Projects/maven-test/A/target/classes/
> file:/d:/Projects/maven-test/A/target/test-classes
> file:/d:/m2repository/test/B/1.0-SNAPSHOT/X-1.0-SNAPSHOT.jar
> file:/d:/m2repository/test/D/1.0-SNAPSHOT/D-1.0-SNAPSHOT.jar
> file:/d:/m2repository/test/C/1.0-SNAPSHOT/C-1.0-SNAPSHOT.jar )
> Remove the exclusion of E in B's pom and put it in C's in the same place. Then remake all projects - E is now included 
> (Sample oputput:
> file:/d:/Projects/maven-test/A/target/classes/
> file:/d:/Projects/maven-test/A/target/test-classes
> file:/d:/m2repository/test/B/1.0-SNAPSHOT/B-1.0-SNAPSHOT.jar
> file:/d:/m2repository/test/D/1.0-SNAPSHOT/D-1.0-SNAPSHOT.jar
> file:/d:/m2repository/test/E/1.0-SNAPSHOT/E-1.0-SNAPSHOT.jar
> file:/d:/m2repository/test/C/1.0-SNAPSHOT/C-1.0-SNAPSHOT.jar)

-- 
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-3500) Include/Exclude of transitive dependencies depends on alphabetic order of module names.

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

David Bernhard closed MNG-3500.
-------------------------------

       Resolution: Fixed
    Fix Version/s: 2.0.9

Fixed in 2.0.9 (documented in release notes).

> Include/Exclude of transitive dependencies depends on alphabetic order of module names.
> ---------------------------------------------------------------------------------------
>
>                 Key: MNG-3500
>                 URL: http://jira.codehaus.org/browse/MNG-3500
>             Project: Maven 2
>          Issue Type: Bug
>          Components: Dependencies
>    Affects Versions: 2.0.8
>         Environment: $ mvn -v
> Maven version: 2.0.8-el4j-20071205
> Java version: 1.5.0_15
> OS name: "windows xp" version: "5.1" arch: "x86" Family: "windows"
>            Reporter: David Bernhard
>             Fix For: 2.0.9
>
>         Attachments: maven-issue.zip
>
>
> Consider five projects A, B, C, D, E with dependencies (--> = depends-on)
> A --> B, C
> B --> D excluding E
> C --> D
> D --> E
> In this scenario, as B comes before C alphabetically, dependency D of A is processed as in B and E is *not* included as a transitive dependency of A.
> Removing the exclusion in B and putting it in C makes E appear.
> To recreate the bug:
> I have attached a small demo zip; after building all five projects run "mvn exec:java -Dexec.mainClass=test.A" in /A. Note that E is not included in the classpath. 
> (I got this result:
> file:/d:/Projects/maven-test/A/target/classes/
> file:/d:/Projects/maven-test/A/target/test-classes
> file:/d:/m2repository/test/B/1.0-SNAPSHOT/X-1.0-SNAPSHOT.jar
> file:/d:/m2repository/test/D/1.0-SNAPSHOT/D-1.0-SNAPSHOT.jar
> file:/d:/m2repository/test/C/1.0-SNAPSHOT/C-1.0-SNAPSHOT.jar )
> Remove the exclusion of E in B's pom and put it in C's in the same place. Then remake all projects - E is now included 
> (Sample oputput:
> file:/d:/Projects/maven-test/A/target/classes/
> file:/d:/Projects/maven-test/A/target/test-classes
> file:/d:/m2repository/test/B/1.0-SNAPSHOT/B-1.0-SNAPSHOT.jar
> file:/d:/m2repository/test/D/1.0-SNAPSHOT/D-1.0-SNAPSHOT.jar
> file:/d:/m2repository/test/E/1.0-SNAPSHOT/E-1.0-SNAPSHOT.jar
> file:/d:/m2repository/test/C/1.0-SNAPSHOT/C-1.0-SNAPSHOT.jar)

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