maven dependengcy:tree 查看maven依赖树(母项目指定pluginManagement)
Error injecting: org.apache.maven.shared.dependency.graph.internal.Maven3DependencyGraphBuilder
java.lang.NoClassDefFoundError: org/sonatype/aether/graph/DependencyNode
2.6的问题
发现这个项目用2.6的dependency plugin出问题,另一个项目用2.8的不出问题
1 两种方式解决
(1)于是在母项目中加入碰碰运气:
<pluginManagement> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-dependency-plugin</artifactId> <version>2.8</version> </plugin> </plugins> </pluginManagement>
搞定,因为这个case中,所有子项目都未有直接引用dependency-plugin或,或直接引用了,但没指定版本
(2)后来直接在这个子项目里指定
<plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-dependency-plugin</artifactId> <version>3.0.0</version> </plugin>
也可以
2 做一些实践验证pluginManagement 对版本的影响
MyTest是MyMain父子关系项目,请注意,不仅是MyTest module中有MyMain,而且要求MyMain的parent是MyTest
所有操作均是在MyMain 目录下mvn dependency:tree
母项目不引用 母项目3.0.0
子项目未直接引用 缺省 3.0.0
子项目引用不指定ver 缺省 3.0.0
子项目ver 2.8 2.8 2.8
缺省可能与mvn版本有关
3.5.3-2.6
3.3.0-2.8
==========================================
对于dependencyManagement的实践在 Maven实战 --- dependencies与dependencyManagement