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

时间:2015-03-16 22:27:32

标签: maven jar dependencies pom.xml

我正在开发的项目依赖于一些众所周知的大型库。事情进展顺利,传递依赖关系现在彼此玩得很好。但不幸的是,总束大小约为100兆。

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

帮助我朝正确方向发展的指针非常棒!

1 个答案:

答案 0 :(得分:2)

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

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

Maven Dependency Plugin以及Eclipse集成提供了一些工具,可以让您通过依赖:树目标或POM的Dependnecy Hierarchy视图等工具更好地理解依赖关系。

不要试图修复未破坏的东西。

但是......

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

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

在你努力和结果的好处之间找到适当的平衡将取决于你。