我在maven中有一个多模块项目,其中一些模块依赖于其他模块。现在,充当依赖关系的模块具有一些已经在依赖模块中列出的依赖关系。
是否有快速识别此类重复依赖项的方法并将其从依赖模块的pom中删除?
答案 0 :(得分:5)
可以扩展项目的依赖关系树以显示依赖关系冲突。 使用命令
mvn dependency:tree
识别此类重复的依赖项。
使用pom的<exclusions>
部分下的<dependency>
标记排除此类重复的依赖项。
<dependencies>
<dependency>
<groupId>sample.ProjectA</groupId>
<artifactId>Project-A</artifactId>
<version>1.0</version>
<scope>compile</scope>
<exclusions>
<exclusion> <!-- declare the exclusion here -->
<groupId>sample.ProjectB</groupId>
<artifactId>Project-B</artifactId>
</exclusion>
</exclusions>
</dependency>
</dependencies>
答案 1 :(得分:2)
如果您使用eclipse作为IDE,则可以在相关pom.xml的依赖关系层次结构中看到重复项。并且使用排除标记可以省略它们。
答案 2 :(得分:2)
您可以使用mvn depgraph:graph -Dincludes=ets.tkt -DshowDuplicates -Dscope:compile.
要使用此插件,请将其放在您的settings.xml中
<settings>
. . .
<pluginGroups>
<pluginGroup>com.github.ferstl</pluginGroup>
</pluginGroups>
</settings>
运行上一个控制台命令时,可以转到/ target,您将找到一个.dot文件。您可以使用graphviz渲染此文件。 有关更多信息,请访问https://github.com/ferstl/depgraph-maven-plugin
答案 3 :(得分:0)
有一个JBoss工具可以帮助解决这些问题:http://tattletale.jboss.org/ 不幸的是,这些天似乎没有得到积极的发展。