You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@maven.apache.org by "John Casey (JIRA)" <ji...@codehaus.org> on 2012/10/22 21:56:36 UTC

[jira] (MNG-5177) Maven adds tests dependecies into depgraph even when skipping tests

    [ https://jira.codehaus.org/browse/MNG-5177?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=311981#comment-311981 ] 

John Casey commented on MNG-5177:
---------------------------------

IMO this is a dangerous thing to add without warning. Any plugin can specify '@RequiresDependencResolution test' and get tripped up with this patch, it's not only those that respond to maven.test.skip. In fact, I can think of use cases off the top of my head (creating a standalone buildable archive of a project using the assembly plugin being one) where test scope is needed, but have nothing at all to do with compiling/executing tests directly.
                
> Maven adds tests dependecies into depgraph even when skipping tests
> -------------------------------------------------------------------
>
>                 Key: MNG-5177
>                 URL: https://jira.codehaus.org/browse/MNG-5177
>             Project: Maven 2 & 3
>          Issue Type: Bug
>    Affects Versions: 3.0.3
>            Reporter: Stanislav Ochotnicky
>            Priority: Minor
>         Attachments: 0001-Fix-text-scope-skipping-with-maven.test.skip.patch
>
>
> Maven 3.x adds test dependencies into dependency graph even when we use -Dmaven.test.skip=true. This means unnecessary downloading of artifacts and failure of build if the repository with test dependencies is offline. 
> I was able to solve this by patching maven in following way:
>  1. add new DependencySelector implementation that looks at environment variables and omits test dependencies when maven.test.skip property is found
>  2. modify maven-compat as well so that old code paths work the same way.
> Maybe a better way to do part 1 would be to modify ScopeDependencySelector, and if that's the preferred way I can rework the patch that way.
> I had several issues with the implementation: 
>  1. For some reason I wasn't able to get property definition from MavenSession so I used System.getProperty directly. Any idea what might be the reason?
>  2. Is there perhaps a better way to figure out that tests are being skipped instead of looking for "maven.test.skip" property? 
>  3. I had to copy non-test artifacts of dependencies in DefaultArtifactResolver because original implementation didn't provide "remove" method. Not a big deal I guess, but worth a note.

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