有啥方法可以加速 maven 构建?
Posted
技术标签:
【中文标题】有啥方法可以加速 maven 构建?【英文标题】:Is there any way to speedup maven build?有什么方法可以加速 maven 构建? 【发布时间】:2015-11-06 07:49:45 【问题描述】:我有一个包含多个 maven
模块的项目。由于这些模块之间存在如此多的依赖关系,我必须构建整个项目,而不是构建一些我需要测试的模块。构建需要很长时间。
有没有什么方法可以通过 shell 命令在我的服务器上运行 maven build 来加速这个过程?
我在mvn
参数中尝试了-T
标记的多种变体,但没有一个有助于加快构建过程。
帮助?有人吗?
【问题讨论】:
【参考方案1】:Maven 并不神奇。如果您的构建过程很慢,那么您必须对其进行分析,确定哪些部分很慢,然后找出改善情况的方法。
第一步是查看 Maven 在构建结束时报告的时间。在这里您可以看到最需要哪些模块。
构建缓慢的几个常见原因:
人们更喜欢集成或端到端测试而不是单元测试。解决方案:在桌面上编写更好的测试或禁用慢速测试 - 在 CI 服务器上运行一夜。 庞大的代码库。解决方案:分道扬镳。 您可以构建单个模块及其所有依赖项。这将跳过未包含在一个模块中的所有模块。解决方案:Maven Modules + Building a Single Specific Module【讨论】:
【参考方案2】:您可以做的一件事是使用 -X 或 -debug 从 maven 日志中读取输出,然后为正在执行但不需要的任何内容添加以下内容:
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<executions>
<execution>
<id>default-testCompile</id>
<phase>none</phase>
</execution>
</executions>
</plugin>
例如,您可以通过将上面的执行行添加到您的 pom 来跳过运行的 testCompile 阶段。
之前在日志中:
[DEBUG] Goal: org.apache.maven.plugins:maven-compiler-plugin:3.2:testCompile (default-testCompile)
[DEBUG] Style: Regular
[DEBUG] Configuration: <?xml version="1.0" encoding="UTF-8"?>
在日志中之后:它根本不显示。
这样做时要小心,不要删除任何重要的东西。
【讨论】:
【参考方案3】:如果目标是加快 CI 服务器构建,但只重建受更改影响的模块,hashver-maven-plugin 旨在解决这个问题:https://github.com/avodonosov/hashver-maven-plugin
【讨论】:
以上是关于有啥方法可以加速 maven 构建?的主要内容,如果未能解决你的问题,请参考以下文章
aliyun阿里云Maven仓库地址——加速你的maven构建
aliyun阿里云Maven仓库地址——加速你的maven构建
[转]aliyun阿里云Maven仓库地址——加速你的maven构建