[ 
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

        

Reply via email to