Java Maven-检测项目中同一依赖项的多个版本
我有一个巨大的遗留项目,我想清理。它有许多模块,它们具有相同的依赖项,但版本不同。因为这个项目很大,我自己找不到这个。 是否有一种方法可以检测项目中不同版本的相同依赖关系? e、 g 模块X:Java Maven-检测项目中同一依赖项的多个版本,java,maven,pom.xml,Java,Maven,Pom.xml,我有一个巨大的遗留项目,我想清理。它有许多模块,它们具有相同的依赖项,但版本不同。因为这个项目很大,我自己找不到这个。 是否有一种方法可以检测项目中不同版本的相同依赖关系? e、 g 模块X: <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>4.0</version> </de
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.0</version>
</dependency>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.12</version>
</dependency>
朱尼特
朱尼特
4
模块Y:
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.0</version>
</dependency>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.12</version>
</dependency>
朱尼特
朱尼特
4.12
您可以使用Maven的依赖关系:树(从项目文件夹运行):
它将输出项目的所有junit
依赖项
您也可以在不包含的情况下调用它,它将打印每个依赖项。将其重定向到一个文件,然后您将能够使用Notedpad++或其他工具在单个页面上查找依赖项(也是间接的依赖项),具有高信号和低噪声:
mvn dependency:tree -Dverbose > dep.txt
您可以使用maven enforcer插件
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-enforcer-plugin</artifactId>
<version>1.0.1</version>
<executions>
<execution>
<id>enforce</id>
<configuration>
<rules>
<DependencyConvergence />
</rules>
</configuration>
<goals>
<goal>enforce</goal>
</goals>
</execution>
</executions>
</plugin>
org.apache.maven.plugins
不,我不能。正如我提到的,项目中有许多依赖项。我不知道他们所有人。你不需要@Arik。把答案读到最后:)不,我不能。我有数百个依赖项,它们都有依赖项。您建议的文档将有数百页高噪音。我建议你试试看——因为我以前也这么做过。数百页的依赖关系?路上一定出了什么大问题。祝你好运:|我喜欢这个,enforcer插件是否在不同的模块中检测到不同的版本?我认为它只查看每个模块的dependency:树。@JFMeier如果从模块A运行它,它不会检查模块B是否A和B是一个父项下的同级。但若您从父级运行,那个么若父级有A和B作为依赖项,那个么插件应该检查它们。如果我理解你的问题correctly@Ivan谢谢目前我只想处理我自己的依赖关系,而不是一次处理所有的依赖关系。我找不到一个办法。你知道这是否可行吗?i、 e.控制收敛的深度。@Arik看起来不可能限制深度