Maven 2.x Dependency Plugin

dependency:tree not consistent with maven core's dependency tree

Details

  • Type: Bug Bug
  • Status: Closed Closed
  • Priority: Major Major
  • Resolution: Fixed
  • Affects Version/s: 2.0-alpha-4
  • Fix Version/s: 2.0
  • Component/s: tree
  • Labels:
    None
  • Number of attachments :
    0

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

Activity

Hide
Brian Fox added a comment -

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.

Show
Brian Fox added a comment - 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.
Hide
Mark Hobson added a comment -

I've done a lot of local work on the dependency tree component since it was used in the help plugin, so hopefully this will resolve this issue. It did have it's own way of building the managed dependencies map, which I've now delegated to MavenProject as per the core. Everything else is resolved through the ArtifactCollector and so should mirror maven core as much as possible.

I'd suggest retrying this scenario when the newer dependency tree code is committed.

Show
Mark Hobson added a comment - I've done a lot of local work on the dependency tree component since it was used in the help plugin, so hopefully this will resolve this issue. It did have it's own way of building the managed dependencies map, which I've now delegated to MavenProject as per the core. Everything else is resolved through the ArtifactCollector and so should mirror maven core as much as possible. I'd suggest retrying this scenario when the newer dependency tree code is committed.
Hide
Brian Fox added a comment -

Kenney: is this still an issue?

Show
Brian Fox added a comment - Kenney: is this still an issue?

People

Vote (0)
Watch (2)

Dates

  • Created:
    Updated:
    Resolved: