【发布时间】:2017-05-02 10:14:06
【问题描述】:
假设以下情况:我的 Maven 项目依赖于一个 jar A,它依赖于其他 10 个 jar,这些 jar 传递地依赖于更多其他 jar。我得到一个巨大的类路径,如果要构建一个战争/耳朵,我得到一个巨大的工件。
实际上,我只使用了 jar A 中的类 foo。类 foo 使用了其他几个类,这些类包含在其他三个 jar 中。所以我真的只需要 jar A 和其他三个 jar 来编译,而不是一堆依赖项(以及它们的依赖项等等)。
有没有办法在类级别(半)自动分析依赖树?据我所知,Maven 对此没有内置功能。
明确一点:我知道这样的情况不应该出现在一个好的软件架构中。但是,如果我得到一个 jar A,它实际上只是用于不同目的的类的集合,那么当我使用 Maven 构建依赖关系树时,我可能会得到很多不必要的依赖关系。而改变A不是我能做的。
【问题讨论】:
-
您可以从 maven 依赖项中排除传递工件,但只能手动排除。依赖树列出了这些。最快的方法是将它们全部排除并重新引入它们,直到您再次进行项目编译。很乱,我知道。如果有人知道不同的方式:请发布:D