Enhanced maven-dependency-tree to allow resolution of reactor dependencies #5
Enhanced maven-dependency-tree to allow resolution of reactor dependencies #5
Conversation
… reactor projects and resolves dependencies from within the reactor. - Added multi-module-test to validate that the new method works against both direct and transitive deps. - Added multi-module-plugin to be used to validate multi-module-test - Added ProjectReferenceKeyGenerator as there is currently no public method to generate the key for MavenProject#projectReferences, MavenSession#projectMap or the Map of reactor projects that we will use. - Separated the reflective invocation out into the Invoker class.
…e version in the maven install, not 2.2.0
Just fyi this is required for the Android Maven Plugin to work with aar packaged components that are resolved from the dependency tree outside as well as within the reactor. |
fyi @jvanzyl |
I tried this branch with a multimodule project using ActionBarSherlock and multiple apklib with native code. |
Great. Thanks for the feedback.
|
there are license problems in this commit see "mvn apache-rat:check" result: Unapproved licenses: src/main/java/org/apache/maven/shared/dependency/graph/ProjectReferenceKeyGenerator.java |
in interface DependencyGraphBuilder, why expect a Map<String, MavenProject> reactorProjects, when a List seems simpler and more natural (result from MavenSession.getProjects())? |
in pom.xml, why remove */pom.xml? |
in Maven31DependencyGraphBuilder.java, why use invoker for invoker.invoke( result.getUnresolvedDependencies(), "removeAll", Collection.class, reactorDeps ); : this is simply collection, no? |
https://jira.codehaus.org/browse/MSHARED-336 opened to track this pull request |
notice there are a few places where coding conventions are not respected: this would be great if you could have a look (previous comments are more important :) ) |
Having to run mvn apache-rat:check to find files without licenses is a usability fail. No user is ever going to know to run this. I have setup Maven core to always check, as having to run this separately means no one ever is. I will change the setup in the project as the current mode of operation is just going to have anyone who ever contributes not know there is a problem. |
William, you may want to let the code sync and we'll transfer the comments to another pull request. I squashed all your commits into one so we can work together on another one to sort out any other issues. |
William, I can take care of the missing licenses and formatting and then we'll go from there. |
William, there is one file that has an EPL license but it looks like you wrote it. I changed it to ASL, just confirm this is all correct. |
Wiiliam, all formatting and license issues are taken care of aside from verifying that the one file, ResolveDependenciesLifecycleParticipant.java, can be licensed ASL. The rest of the questions from Herve you can answer on the dev mailing list. |
ResolveDependenciesLifecycleParticipant.java, can be licensed ASL. The code is mine, it just started out from what I committed to the android-maven-plugin. Let me now where to send any follow up commits, like the ASL for ResolveDependenciesLifecycleParticipant.java I'll reply to the others, one by one of the dev list. |
Cool, I've already changed the license as it looked like it is all your code. |
Added an overloaded method to DependencyGraphBuilder that accepts the reactor projects and resolves dependencies from within the reactor.