Maven 通过批量排除不需要的依赖项来减少包的大小?

Maven reduce bundles size by excluding unneeded dependencies in bulk?

我正在从事的项目依赖于一些知名的大型库。一切运行良好,传递依赖关系彼此配合得很好,就目前而言。但不幸的是,总包大小约为 100 兆。

我不确定这是否太大了,但是在 maven 中有没有一种方法可以有效地删除依赖关系,而不会使 pom.xml 非常冗长和冗长?

如果能在正确的方向上帮助我,那就太棒了!

您可以通过声明排除来删除依赖项。不过,我 post 首先要问的问题是 .. 为什么要删除它们?

除非您知道不需要依赖项,否则尝试删除它们可能没有意义。特别是如果没有问题,例如在应用程序性能或启动时间方面。

Maven Dependency Plugin 和 Eclipse 集成有一些工具可以让您更好地理解依赖关系,例如 dependency:tree 目标或 POM 的依赖层次结构视图。

不要试图修复没有损坏的东西。

但是..

如果您真的知道运行时需要什么并使用 Maven 和 M2e 的工具,您可能会删除大量最终工件。但是,您必须使用依赖项排除在 pom 中配置它。较新的 Maven 版本甚至允许使用模式。

您可以做的另一件事是使用像 proguard 这样的工具从最终工件中删除所有未使用的 类。这可能相当复杂,但也非常有效。

在努力和结果收益之间找到适当的平衡,完全取决于您。