[
http://jira.codehaus.org/browse/MDEP-267?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=223323#action_223323
]
Cole Mickens commented on MDEP-267:
-----------------------------------
Another thing that seems strange to me... If you remove 'filters.add(
StateDependencyNodeFilter.INCLUDED );' from createDependencyNodeFilter() in
TreeMojo.java, the 'dependency:tree' goal yields:
[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 - version
managed from 1.1.1; omitted for duplicate)
[INFO] +- commons-logging:commons-logging:jar:1.0.4:compile
[INFO] \- junit:junit:jar:4.8.1:test
Is there a reason that it only gives "version managed from 1.1.1" on the nested
transitive dependency?
> 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