有没有办法加速maven构建?

时间:2015-08-13 11:14:57

标签: maven optimization

我有一个包含多个var tmp2 = parseInt(<?php echo $tmp; ?>); 模块的项目。由于这些模块之间存在如此多的依赖关系,我必须构建整个项目,而不是构建一些我需要测试的模块。这需要花费很多时间来构建。

有没有办法通过shell命令在我的服务器上运行maven build来加速这个过程?

我在maven参数中尝试了-T标记的多种变体,但它们都没有帮助加快构建过程。

帮助?任何人

3 个答案:

答案 0 :(得分:3)

Maven并不神奇。如果你的构建过程很慢,那么你必须分析它,确定哪些部分很慢,然后找出改善这种情况的方法。

第一步是查看Maven在构建结束时报告的时间。在这里,您可以看到大多数时间需要哪些模块。

构建缓慢的一些常见原因:

  • 人们更喜欢整合或端到端测试而不是单元测试。解决方案:在桌面上编写更好的测试或禁用慢速测试 - 在CI服务器上运行它们过夜。
  • 庞大的代码库。解决方案:拆分。
  • 您可以构建单个模块及其所有依赖项。这将跳过一个模块中未包含的所有模块。解决方案:Maven Modules + Building a Single Specific Module

答案 1 :(得分:0)

您可以做的一件事是使用-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"?>

在日志中:它根本没有出现。

这样做时要小心,不要删除任何重要的东西。

答案 2 :(得分:0)

如果目标是加快CI服务器的构建,但仅重建受更改影响的模块,则hashver-maven-plugin旨在解决此问题:https://github.com/avodonosov/hashver-maven-plugin

相关问题