【问题标题】:Is there any way to speedup maven build?有什么方法可以加速 maven 构建?
【发布时间】:2015-11-06 07:49:45
【问题描述】:

我有一个包含多个 maven 模块的项目。由于这些模块之间存在如此多的依赖关系,我必须构建整个项目,而不是构建一些我需要测试的模块。构建需要很长时间。

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

我在mvn 参数中尝试了-T 标记的多种变体,但没有一个有助于加快构建过程。

帮助?有人吗?

【问题讨论】:

    标签: maven optimization


    【解决方案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

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2011-10-22
          • 2016-02-16
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多