[
https://jira.codehaus.org/browse/MNG-1378?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=294097#comment-294097
]
Alex Heneveld commented on MNG-1378:
------------------------------------
+1
Naively I expected that a dependency which is both test-scoped and
test-jar-classified would pull in test-scoped transitive dependencies, ie given
{code}
proj1 pom:
<dependency>
<artifactId>support</artifactId>
<scope>test</scope>
</dependency>
proj2 pom:
<dependency>
<artifactId>proj1</artifactId>
<classifer>test-jar</classifier>
<scope>test</scope>
</dependency>
{code}
Like others I'd like proj2 to see support without having to explicitly re-list
it.
If I haven't declared classifier test-jar then it's fair enough not to pull in
transitive test-scoped dependencies. I guess the problem is that classifier
namespace isn't as formalised as scopes, and making dependency resolution
itself dependent on the classifier name could get complicated?
Would a new tag {{<importScope>test</importScope>}} be a good solution?
(Although a part of me worries we this starts down a slippery slope, next
wanting to introduce test-runtime and test-compile scopes...)
> Make dependencies of test-jars transitive
> -----------------------------------------
>
> Key: MNG-1378
> URL: https://jira.codehaus.org/browse/MNG-1378
> Project: Maven 2 & 3
> Issue Type: Bug
> Components: Dependencies
> Affects Versions: 2.0
> Reporter: Mark Hobson
> Fix For: Issues to be reviewed for 3.x
>
> Attachments: mng1378.tar.gz
>
>
> test-jar transitive dependencies are calculated as per compile scope rather
> than test scope.
> The situation is demonstrated nicely in it0077:
> * module sub1 has a test-scoped dependency of commons-lang
> * module sub2 has a test-scoped dependency of sub1 test-jar
> sub2 tests should inherit the commons-lang transitive dependency. For
> example:
> Index:
> maven-core-it/it0077/sub2/src/test/java/org/apache/maven/it0077/PersonTwoTest.java
> ===================================================================
> ---
> maven-core-it/it0077/sub2/src/test/java/org/apache/maven/it0077/PersonTwoTest.java
> (revision
> 328307)
> +++
> maven-core-it/it0077/sub2/src/test/java/org/apache/maven/it0077/PersonTwoTest.java
> (working
> copy)
> @@ -1,6 +1,7 @@
> package org.apache.maven.it0077;
> import junit.framework.TestCase;
> +import org.apache.commons.lang.BooleanUtils;
> public class PersonTwoTest
> extends PersonTest
> Results in:
> [INFO]
> ----------------------------------------------------------------------------
> [ERROR] BUILD FAILURE
> [INFO]
> ----------------------------------------------------------------------------
> [INFO] Compilation failure
> c:\maven-components\maven-core-it\it0077\sub2\src\test\java\org\apache\maven\it0077\PersonTwoTest.java:[4,31]
> package org.apache.commons.lang does not exist
--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators:
https://jira.codehaus.org/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira