Details
Description
This plugin applies dependencyManagement to transitive dependencies (which is really what I want),
but maven itself does not.
For instance, mvn help:dependencies on sandbox/maven-plug-it-plugin lists:
[INFO] org.apache.maven.plugins:maven-plug-it-plugin:maven-plugin:1.0-SNAPSHOT [INFO] junit:junit:jar:3.8.1:test [INFO] org.apache.maven.shared:file-management:jar:1.1:compile [INFO] org.apache.maven.shared:maven-shared-io:jar:1.0:compile [INFO] org.apache.maven:maven-settings:jar:2.0:compile [INFO] org.apache.maven:maven-plugin-api:jar:2.0.4:compile [INFO] org.apache.maven.shared:maven-test-tools:jar:1.0-20061102.004837-1:test [INFO] easymock:easymock:jar:1.2_Java1.3:test [INFO] org.codehaus.plexus:plexus-velocity:jar:1.1.3:compile [INFO] org.codehaus.plexus:plexus-container-default:jar:1.0-alpha-9:compile [INFO] commons-collections:commons-collections:jar:2.0:compile [INFO] velocity:velocity:jar:1.4:compile [INFO] velocity:velocity-dep:jar:1.4:runtime [INFO] org.apache.maven.shared:maven-plugin-testing-tools:jar:1.0-alpha-2-20061221.044609-6:compile [INFO] org.apache.maven:maven-model:jar:2.0:compile [INFO] org.apache.maven.shared:maven-repository-builder:jar:1.0-alpha-1:compile [INFO] org.apache.maven:maven-artifact-manager:jar:2.0:compile [INFO] org.apache.maven:maven-project:jar:2.0:compile [INFO] org.apache.maven.shared:maven-common-artifact-filters:jar:1.0-alpha-1:compile [INFO] org.apache.maven:maven-artifact:jar:2.0:compile [INFO] org.apache.maven.shared:maven-invoker:jar:2.0.5:compile [INFO] org.codehaus.plexus:plexus-utils:jar:1.0.4:compile [INFO] org.apache.maven:maven-monitor:jar:2.0:compile
Adding 'dependencyManagement' for plexus-utils to force it to 1.1 (which doesn't work in m2 itself), it lists:
[INFO] org.apache.maven.plugins:maven-plug-it-plugin:maven-plugin:1.0-SNAPSHOT [INFO] junit:junit:jar:3.8.1:test [INFO] org.apache.maven.shared:file-management:jar:1.1:compile [INFO] org.codehaus.plexus:plexus-utils:jar:1.1:compile [INFO] org.apache.maven.shared:maven-shared-io:jar:1.0:compile [INFO] org.apache.maven:maven-settings:jar:2.0:compile [INFO] org.apache.maven:maven-plugin-api:jar:2.0.4:compile [INFO] org.apache.maven.shared:maven-test-tools:jar:1.0-20061102.004837-1:test [INFO] easymock:easymock:jar:1.2_Java1.3:test [INFO] org.codehaus.plexus:plexus-velocity:jar:1.1.3:compile [INFO] org.codehaus.plexus:plexus-container-default:jar:1.0-alpha-9:compile [INFO] commons-collections:commons-collections:jar:2.0:compile [INFO] velocity:velocity:jar:1.4:compile [INFO] velocity:velocity-dep:jar:1.4:runtime [INFO] org.apache.maven.shared:maven-plugin-testing-tools:jar:1.0-alpha-2-20061221.044609-6:compile [INFO] org.apache.maven:maven-model:jar:2.0:compile [INFO] org.apache.maven.shared:maven-repository-builder:jar:1.0-alpha-1:compile [INFO] org.apache.maven:maven-artifact-manager:jar:2.0:compile [INFO] org.apache.maven:maven-project:jar:2.0:compile [INFO] org.apache.maven.shared:maven-common-artifact-filters:jar:1.0-alpha-1:compile [INFO] org.apache.maven:maven-artifact:jar:2.0:compile [INFO] org.apache.maven.shared:maven-invoker:jar:2.0.5:compile [INFO] org.apache.maven:maven-monitor:jar:2.0:compile
Either we say this is the desired behavior (+1), or MNG-1577 should be fixed.
The problem here is that if MNG-1577 is going for the if-pom-version-is-this-then-do-that-otherwise-do-that,
this plugin should exhibit the same behaviour.
I'd like both maven core and this plugin to use the same dependency resolution code, or drop
the dependency-tree code and use maven's internal dependency graph (which doesn't exist yet).
Issue Links
| This issue relates to: | ||||
| MNG-1577 | dependencyManagement does not work for transitive dependencies |
|
|
|
I think the plugin should be showing what is actually getting resolved, which it appears based on above to be doing. Maven's tree itself is just dumping out the tree as the poms are parsed, noting things that are overriden as it goes. I'm not convinced they have to show exactly the same thing, it has different purposes. That said, I think most people are interested in what you're actually getting.