You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@maven.apache.org by "Jason van Zyl (JIRA)" <ji...@codehaus.org> on 2007/05/26 18:04:59 UTC

[jira] Updated: (MANTTASKS-7) dependencies ant task does not handle scoped transitive dependencies correctly

     [ http://jira.codehaus.org/browse/MANTTASKS-7?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Jason van Zyl updated MANTTASKS-7:
----------------------------------

    Fix Version/s: 2.0.6

> dependencies ant task does not handle scoped transitive dependencies correctly
> ------------------------------------------------------------------------------
>
>                 Key: MANTTASKS-7
>                 URL: http://jira.codehaus.org/browse/MANTTASKS-7
>             Project: Maven 2.x Ant Tasks
>          Issue Type: Bug
>         Environment: Windows XP, Java 1.5.0_08-b03, Ant 1.6.5, Maven 2.0.4
>            Reporter: Rick Riemer
>             Fix For: 2.0.6
>
>
> The ant <dependencies> task resolves transitive dependencies incorrectly if they're included in different scopes. Here's an example:
> [dependencies section of pom.xml for project A]
> ...
> <dependencies>
>     <dependency>
>         <groupId>log4j</groupId>
>         <artifactId>log4j</artifactId>
>         <version>1.2.13</version>
>     </dependency>
> </dependencies>
> ...
> [dependencies section of pom.xml for project B]
> ...
> <dependencies>
>     <dependency>
>         <groupId>my-company</groupId>
>         <artifactId>project-A</artifactId>
>         <version>1.0-SNAPSHOT</version>
>         <scope>test</scope>
>     </dependency>
>     <dependency>
>         <groupId>log4j</groupId>
>         <artifactId>log4j</artifactId>
>         <version>1.2.13</version>
>     </dependency>
>     <dependency>
>         <groupId>commons-lang</groupId>
>         <artifactId>commons-lang</artifactId>
>         <version>2.1</version>
>     </dependency>
> </dependencies>
> ...
> [dependencies section of pom.xml for project C]
> ...
> <dependencies>
>     <dependency>
>         <groupId>my-company</groupId>
>         <artifactId>project-B</artifactId>
>         <version>1.0-SNAPSHOT</version>
>     </dependency>
> </dependencies>
> ...
> When I use the <dependencies> task to build a "compile"-scope classpath for project B everything is OK:
> <mvn:dependencies pathId="compile.classpath" useScope="compile">
>     <pom refid="maven.pom" />
> </mvn:dependencies>
> -- gives --
> \.m2\repository\commons-lang\commons-lang\2.1\commons-lang-2.1.jar
> \.m2\repository\log4j\log4j\1.2.13\log4j-1.2.13.jar
> But when I use the same task to build a "compile"-scope classpath for project C, log4j goes missing:
> <mvn:dependencies pathId="compile.classpath" useScope="compile">
>     <pom refid="maven.pom" />
> </mvn:dependencies>
> -- gives --
> \.m2\repository\nl\forcare\common\1.0-SNAPSHOT\common-1.0-SNAPSHOT.jar
> \.m2\repository\commons-lang\commons-lang\2.1\commons-lang-2.1.jar
> I think that that log4j is filtered, because project A is only included in test scope, regardless of log4j also being present in project B. If I use the mvn executable itself to run a compile instead of the ant tasks, then there is no problem and log4j appears on the compile classpath. It seems that the ant tasks have a different mechanism of resolving dependencies than the mvn executable.

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