maven:更智能地确定不必要的依赖关系?

时间:2017-11-07 21:38:03

标签: maven

对我来说,maven非常适合管理jar文件之间的依赖关系。但 还有一件事让我感到困惑 - 关于不必要的依赖,

例如,我们可能有pom.xml表示神器A依赖于B,而B依赖于C.但是有额外的信息(通过电子邮件,论坛等)告诉我们A没有真正使用C.这个例子就是这个

[INFO] +- org.apache.hive:hive-exec:jar:2.3.0:compile
[INFO] |  +- ...
[INFO] |  +- org.apache.calcite:calcite-core:jar:1.10.0:compile
[INFO] |  |  +- ...
[INFO] |  |  \- org.pentaho:pentaho-aggdesigner-algorithm:jar:5.1.5-jhyde:compile

C的作者(在本例中为org.pentaho:pentaho-aggdesigner-algorithm)会 告诉我(通过互联网论坛)(link):

  

请注意,当Hive使用Calcite时,它不会使用   pentaho-aggdesigner-algorithm(在编译时或运行时),   所以你可以安全地排除这种依赖。

我知道如何排除依赖关系,我的问题是这里是否存在 一种更智能的方法来确定依赖关系不是真的 需要?或者我们真的依赖pom.xml来表达非常准确 他们的依赖?

我的另一个例子是:我看到了这种依赖:

[INFO] +- org.apache.hadoop:hadoop-common:jar:2.7.3:compile
[INFO] |  +- org.apache.hadoop:hadoop-annotations:jar:2.7.3:compile
[INFO] |  |  \- jdk.tools:jdk.tools:jar:1.8:system

我怀疑对jdk.tools的依赖不是 真的需要。但我怎么知道呢?在那儿 比试错更好的方式或联系开发人员?

0 个答案:

没有答案