我有一个巨大的遗产项目,我想要清理。它有许多模块,它们具有相同的依赖关系,但具有不同的版本。由于项目很大,我自己找到这个是不切实际的。 有没有办法在项目中检测不同版本的相同依赖? e.g。
模块X:
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.0</version>
</dependency>
模块Y:
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.12</version>
</dependency>
答案 0 :(得分:1)
您可以使用maven-enforcer-plugin
<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>
http://maven.apache.org/enforcer/enforcer-rules/dependencyConvergence.html https://www.ricston.com/blog/solving-dependency-conflicts-maven/
答案 1 :(得分:0)
你可以使用Maven的timestamp('timestamp1')->default(DB::raw('2018-01-01 15:23'))
(从项目的文件夹中运行它):
dependency:tree
它将输出项目的所有mvn dependency:tree -Dverbose -Dincludes=junit
依赖项。
您也可以在没有包含的情况下调用它,它将打印每个依赖项。将它重定向到一个文件,然后你就可以使用Notedpad ++或其他任何东西在一个页面上查找依赖项(也是间接的),具有高信号和低噪声:
junit