我有一个大型Maven项目,其中有许多模块和许多pom.xml文件。项目已经更改,我怀疑pom包含一些不必要的依赖项。是否有一个命令可以从pom中删除任何未使用的依赖项?
当前回答
Maven依赖插件会有所帮助,尤其是依赖:分析目标:
依赖项:analyze分析这个项目的依赖项,并确定哪些是:使用的和声明的;使用的和未申报的;未使用并声明。
另一件可能有助于做一些清理的事情是Maven项目信息报告插件中的依赖收敛报告。
其他回答
你看过Maven依赖插件吗?它不会为你删除东西,但有工具让你自己做分析。我特别想到的
mvn dependency:tree
你可以使用DepClean https://github.com/castor-software/depclean/
DepClean是一个自动删除包含在Java依赖树中但实际没有在项目代码中使用的依赖项的工具。
我有类似的问题,并决定写一个脚本,删除依赖为我。使用它,我很容易地消除了一半以上的依赖关系。
http://samulisiivonen.blogspot.com/2012/01/cleanin-up-maven-dependencies.html
Maven依赖插件会有所帮助,尤其是依赖:分析目标:
依赖项:analyze分析这个项目的依赖项,并确定哪些是:使用的和声明的;使用的和未申报的;未使用并声明。
另一件可能有助于做一些清理的事情是Maven项目信息报告插件中的依赖收敛报告。
你可以使用dependency:analyze -DignoreNonCompile
这将打印已使用的未声明依赖项和未声明依赖项的列表(同时忽略未使用依赖项分析的运行时/提供/测试/系统范围)。
##使用时要小心,一些在运行时使用的库被认为是未使用的
欲了解更多详情,请参阅此链接
推荐文章
- Maven依赖Servlet 3.0 API?
- 在pom.xml中的<依赖>下的<作用域>是为了什么?
- 如何获得工件的依赖树?
- “react-scripts”不被视为内部或外部命令
- Maven项目版本继承——我必须指定父版本吗?
- 排除单个依赖项的所有传递依赖项
- 将现有Eclipse项目转换为Maven项目
- Maven——总是下载源代码和javadocs
- “mvn清洁安装”与“mvn安装”有什么不同?
- 如何在pom.xml文件中指定Java编译器版本?
- 如何清除Apache Maven的缓存?
- 如何获取Maven项目版本到bash命令行
- Maven:通过相对路径向jar添加依赖项
- 在maven中指定Java版本-属性和编译器插件之间的区别
- 不运行单元测试构建Maven项目