我有一个包含大量模块和pom.xmls的大型Maven项目.而且项目已经改变了很多,我确信pom必须有一些不必要的依赖.有没有人知道是否有一个命令可以运行从pom中删除任何无意义的依赖项?
Pas*_*ent 204
在Maven的依赖插件会有所帮助,尤其是dependency:analyze目标:
dependency:analyze分析这个项目的依赖关系,并确定哪些是:使用和声明; 使用和未声明; 未使用和声明.
可能有助于进行一些清理的另一件事是来自Maven项目信息报告插件的Dependency Convergence报告.
Ric*_*ler 40
正如其他人所说,您可以使用依赖关系:分析目标以查找使用和声明,使用和未声明,或未使用和声明的依赖项.您还可以找到依赖项:analyze-dep-mgt,用于查找dependencyManagement部分中的不匹配项.
您可以简单地从POM中删除不需要的直接依赖项,但如果它们是由第三方jar引入的,则可以使用<exclusions>依赖项中的标记来排除第三方jar(有关详细信息和一些讨论,请参阅标题为" 依赖项排除项 "的部分) .以下是从Spring依赖项中排除commons-logging的示例:
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring</artifactId>
<version>2.5.5</version>
<exclusions>
<exclusion>
<groupId>commons-logging</groupId>
<artifactId>commons-logging</artifactId>
</exclusion>
</exclusions>
</dependency>
Run Code Online (Sandbox Code Playgroud)
Sai*_*pta 39
您可以使用 dependency:analyze -DignoreNonCompile
这将打印一个列表used undeclared和unused declared依赖项(同时忽略未使用的依赖项分析的runtime/ provided/ test/ system作用域.)
但是在使用它时要小心,使用的一些库runtime被认为是未使用的!
Bri*_*new 33
你看过Maven Dependency Plugin了吗?这不会删除你的东西,但有工具,让你自己做分析.我特别想到
mvn dependency:tree
Run Code Online (Sandbox Code Playgroud)
小智 14
我有类似的问题,并决定编写一个删除依赖关系的脚本.使用它我很容易得到超过一半的依赖.
http://samulisiivonen.blogspot.com/2012/01/cleanin-up-maven-dependencies.html
| 归档时间: |
|
| 查看次数: |
135079 次 |
| 最近记录: |