首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >从java项目中移除额外的jars依赖项

从java项目中移除额外的jars依赖项
EN

Stack Overflow用户
提问于 2017-06-09 13:08:43
回答 1查看 605关注 0票数 0

我正在将多模块java项目迁移到maven中。现在,对于他们中的大多数人,我迁移到了maven。最后,我意识到我的项目包含了很多不必要的罐子,我想把它们清理干净。

我知道maven有插件命令,mvn依赖:分析。效果很好。

依赖性:分析该项目的依赖关系,并确定哪些是已使用和声明的;哪些是已使用和未声明的;哪些是未使用的和已声明的。基于静态代码分析。

现在我的问题是,我如何为清理目的删除已报告的未使用的和声明的依赖关系。有可能这些jars在运行时被使用,我的代码在删除后会非常好地编译,但在运行时会崩溃。

一个例子:使用一个开放源码库antisamy.jar编译 mycode,但它在运行时需要batik.jar。以及mvn依赖项:删除batik.jar。

我的理解是正确的还是需要专家的意见。

EN

回答 1

Stack Overflow用户

发布于 2017-06-09 13:54:15

你的理解似乎是正确的。但我不知道为什么你会认为有一个工具可以覆盖所有的基础。是的,如果您通过反射使用一些东西,那么没有一个工具能够可靠地检测到您依赖于这个类或另一个类的事实。

例如,考虑一下这个片段:

代码语言:javascript
复制
String myClassName = "com." + "example." + "SomeClass";
Class.forName(myClassName);

我不认为您可以构建一个可以在代码中爬行并提取所有此类引用的工具。

我会使用一种尝试失败的方法,它包括:

  • 删除dependency:analyze说是多余的所有依赖项
  • 每当你找到一个真正被使用的,你只需将它添加回来。

这可以很好地工作,因为我预计反射实际使用的依赖项的数量非常少。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/44458684

复制
相关文章

相似问题

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