我有一个大型Maven项目,其中有许多模块和许多pom.xml文件。项目已经更改,我怀疑pom包含一些不必要的依赖项。是否有一个命令可以从pom中删除任何未使用的依赖项?
当前回答
你看过Maven依赖插件吗?它不会为你删除东西,但有工具让你自己做分析。我特别想到的
mvn dependency:tree
其他回答
你可以使用dependency:analyze -DignoreNonCompile
这将打印已使用的未声明依赖项和未声明依赖项的列表(同时忽略未使用依赖项分析的运行时/提供/测试/系统范围)。
##使用时要小心,一些在运行时使用的库被认为是未使用的
欲了解更多详情,请参阅此链接
你看过Maven依赖插件吗?它不会为你删除东西,但有工具让你自己做分析。我特别想到的
mvn dependency:tree
您可以使用dependency_cleaner https://github.com/junaidbs/dependency_cleaner 这个罐子将帮助识别和删除pom中不需要的依赖项。 它将自动执行删除依赖项的过程并运行,然后检查该依赖项是否需要
我有类似的问题,并决定写一个脚本,删除依赖为我。使用它,我很容易地消除了一半以上的依赖关系。
http://samulisiivonen.blogspot.com/2012/01/cleanin-up-maven-dependencies.html
Maven依赖插件会有所帮助,尤其是依赖:分析目标:
依赖项:analyze分析这个项目的依赖项,并确定哪些是:使用的和声明的;使用的和未申报的;未使用并声明。
另一件可能有助于做一些清理的事情是Maven项目信息报告插件中的依赖收敛报告。
推荐文章
- 我如何告诉Spring Boot哪个主类用于可执行jar?
- 什么是maven中的“pom”打包?
- 在maven中安装mvn到底做什么
- Gradle替代mvn安装
- 如何在POM.xml中引用环境变量?
- Maven project.build.directory
- Spring Boot -父pom,当你已经有一个父pom
- 使用Maven复制文件的最佳实践
- Maven命令行如何指向特定的settings.xml为单个命令?
- Maven使用多个src目录编译
- Maven依赖项失败,出现501错误
- 是什么原因导致Eclipse中导入的Maven项目默认使用Java 1.5而不是Java 1.6,我如何确保它不使用?
- 禁用maven下载进度指示
- 如何在一个命令行中下载特定的Maven工件?
- Maven surefire找不到ForkedBooter类