You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@maven.apache.org by "Andrew Moore (JIRA)" <ji...@codehaus.org> on 2005/11/22 01:54:06 UTC

[jira] Commented: (MNG-1568) test-jar dependency clobbers transitive dependency

    [ http://jira.codehaus.org/browse/MNG-1568?page=comments#action_51587 ] 

Andrew Moore commented on MNG-1568:
-----------------------------------

I have been playing around with the attached test case and can now reliably make it pass or fail depending upon the order in which I run the commands.

I run two configurations:
test - sub4/pom.xml includes sub2-test and PersonFourTest extends PersonTwoTest
notest - sub4/pom.xml does NOT include sub2-test and PersonFourTest extends Object

notest: mvn clean:clean install PASS
test: mvn clean:clean install FAIL

So far, so good. Now,

notest: mvn clean:clean install PASS
test: mvn install PASS

When I modify sub4/pom.xml, to add the sub2-test dependency, and do not clean, a regular compile is not triggered. The existing sub4 classes are used and everything 'works'.

This had me going for a while as sometimes my test would pass and othertimes it would fail.

Is this the expected behaviour? Should the compile plugin be aware of project metadata (the dependencies in this case) and that a change in metadata may require recompilation?


> test-jar dependency clobbers transitive dependency
> --------------------------------------------------
>
>          Key: MNG-1568
>          URL: http://jira.codehaus.org/browse/MNG-1568
>      Project: Maven 2
>         Type: Bug
>   Components: maven-core
>     Versions: 2.0
>  Environment: Linux 2.6.10-gentoo-r4 #1 SMP Mon Jan 10 14:53:56 EST 2005 i686 AMD Athlon(tm) MP 2400+ AuthenticAMD GNU/Linux
> java version "1.4.2_09"
> Java(TM) 2 Runtime Environment, Standard Edition (build 1.4.2_09-b05)
> Java HotSpot(TM) Client VM (build 1.4.2_09-b05, mixed mode)
>     Reporter: Andrew Moore
>      Fix For: 2.0.1
>  Attachments: itMNG1568.tar.gz
>
>
> Specifying a test-jar dependency clobbers any transitive dependency on
> that project.
> eg
> projectA publishes jar and test-jar
> projectB depends on projectA.jar (scope compile)
> projectC depends on projectB.jar (scope compile) and projectA.test-jar
> (scope test)
> In projectC, the test scoped projectA.test-jar dependency effectively
> clobbers the compile scoped transitive dependency on projectA.jar. ie
> projectA.jar is no longer in projectC's compile scope dependency list.
> If I explicitly specify the projectA.jar compile dependency in the projectC POM it is resolved correctly.
> There are currently other issues with test-jar dependency
> resolution that may be related.
> MNG-1378 <http://jira.codehaus.org/browse/MNG-1378>
> According to Brett "It shouldn't be clobbered, as
> the conflict ID for a dependency is group:artifact:type:classifier" but this isn't what I am seeing.

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


---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@maven.apache.org
For additional commands, e-mail: dev-help@maven.apache.org