首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >是否有可能自动优化maven依赖项?

是否有可能自动优化maven依赖项?
EN

Stack Overflow用户
提问于 2012-07-11 14:17:07
回答 2查看 7.2K关注 0票数 16

我正在从事一个大型项目,其中包括大约40个具有非常非优化依赖关系的子项目。有些声明的依赖项没有使用,也有已使用的但未声明的依赖项。当通过其他依赖项添加依赖关系时,第二种情况是可能的。

我希望删除冗余并添加所需的依赖项。我运行了mvn dependency:analyze,得到了一长串我现在必须修复的警告。

我想知道是否有maven插件或任何其他实用程序可以自动更新我的pom.xml文件。我试着手动做,但花了很多时间。似乎要花几天的时间才能完成这项任务。

更糟糕的是,我可以自己编写这样的脚本,但可能存在现成的东西吗?

下面是mvn dependency:analyze报告依赖关系警告的方式:

代码语言:javascript
复制
[WARNING] Used undeclared dependencies found:
[WARNING]    org.apache.httpcomponents:httpcore:jar:4.1:compile
[WARNING] Unused declared dependencies found:
[WARNING]    commons-lang:commons-lang:jar:2.4:compile
[WARNING]    org.json:json:jar:20090211:compile
EN

回答 2

Stack Overflow用户

发布于 2012-07-11 15:14:14

我不会说:具有非常不优化的依赖关系。--只是有人没有很好地完成他的工作,导致定义没有使用的依赖关系--显示出有人不知道构建工具是什么以及它是如何工作的。这可以与包含许多未使用导入的Java文件进行比较。对于Java源中未使用的导入,这可以简单地由IDE来处理,但是对于Maven中的依赖项,不存在已经表达过的简单方式,问题是各种DI等等,这使得这项工作变得很困难。您可以尝试输出依赖项的结果:将其分析到脚本中(该目标有一个选项),然后在清理依赖项之后测试生成的结果。

可能是个好主意

代码语言:javascript
复制
mvn dependency:analyze -DscriptableOutput=true 

它产生的输出可以非常简单地从输出中提取出来,并且可以用于进一步的处理,比如作为版本的输入-maven-plugin(有一些预转换)。

票数 7
EN

Stack Overflow用户

发布于 2012-07-11 14:57:32

我不建议自动清理依赖项。

  1. 添加所有“未声明使用的.”导致大多数传递依赖的重复,导致花费更多的时间来阅读和管理它们。
  2. 删除所有未使用的声明.在运行时可能会导致错误,因为这些错误是:通过反射调用或专门声明来覆盖第三方依赖项中已经使用的同一工件的版本(最好将它们的编译作用域更改为运行时,而测试范围应该不受影响,以避免泄漏到生产包),或者添加以声明某个第三方库的可选传递依赖项的使用情况等等。
票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11434660

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档