有啥方法可以加速 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构建

有啥方法可以从 Apple Watch 访问加速度计?

[转]aliyun阿里云Maven仓库地址——加速你的maven构建

有啥方法可以在同一个大表上使用 3x UNION All 来加速复杂查询?

aliyun阿里云alibabaMaven仓库地址——加速你的maven构建