AnalyzeDepMgt Check if DepMgt overrides a (parent's) Transitive Dependency
--------------------------------------------------------------------------
Key: MDEP-267
URL: http://jira.codehaus.org/browse/MDEP-267
Project: Maven 2.x Dependency Plugin
Issue Type: Improvement
Affects Versions: 2.1
Reporter: Cole Mickens
Assignee: Brian Fox
Attachments: test-case.zip
Unzip the test-case.
In testArtifactParent, run `mvn -DskipTests=true install`.
In testArtifactChild, run `mvn -DskipTests=true dependency:tree`.
When it lists the tree, it prints:
[INFO] testGroup:testArtifactChild:jar:0.0.1-SNAPSHOT
[INFO] +- commons-beanutils:commons-beanutils:jar:1.8.3:compile
[INFO] +- commons-logging:commons-logging:jar:1.0.4:compile
[INFO] \- junit:junit:jar:4.8.1:test
If you remove 'commons-logging:commons-logging:jar' from the <dependency>
section of the child pom, you get:
[INFO] +- commons-beanutils:commons-beanutils:jar:1.8.3:compile
[INFO] | \- commons-logging:commons-logging:jar:1.0.4:compile (version managed
from 1.1.1)
[INFO] \- junit:junit:jar:4.8.1:test
As you can see, the warning "version managed from x.x.x" is only printed out
when the child doesn't declare a dependency on that package. (Possibly due to
how DependencyNode render's itself based on whether or not it is a duplicate).
I'm trying to write a new mojo for the Dependency plugin but I'm having trouble
getting a list of ALL project dependencies. Clearly the Dependency plugin has
access to this because (at least in one case) it is aware that a dependency was
overriden by the <dependencyManagement> section.
I think that the AnalyzeDepMgt mojo should probably be updated to include a
warning if a managed dependency is overriding a transitive dependency.
Ironically it was originally meant to do more or less the opposite. That maybe
confusing and I already have a skeleton for a new mojo to add, but like I said,
I'm having difficulties getting that "full list of dependencies".
Hopefully this gives some more context. I'm going to pour through the
DependencyNode stuff, try to figure out where that "version managed from" logic
comes from and then implement/call that in the new AnalyzeDepMgtOverrides mojo
I'm working on. Any input on how this list might be easily discovered would be
appreciated!
--
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators:
http://jira.codehaus.org/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira