我有一个包含 13 个子模块的 Maven 项目。我有两个问题如何优化构建过程:
- 我只想为 x86-64 服务器编译 Java 代码。我如何配置 Maven 来做到这一点?
- 我有一个有 4 个 CPU 内核的服务器。是否可以使用多线程来编译代码?
2)mvn package -T 2C
将使用每个 CPU 核心 2 个线程构建
- 我只想为 x86-64 服务器编译 Java 代码。我如何配置 Maven 来做到这一点?
Java是跨平台的。你不能让它只为 x86-64 编译。
.2. 我有一个有 4 个 CPU 内核的服务器。是否可以使用多线程来编译代码?
javac
是多线程的。它可能不会使用您拥有的所有内核,但这是您可以做到的多线程。
正如 Andrew 所指出的,您可以使构建多线程,这会导致测试同时运行(这可能会破坏您的测试)这不会使编译并发。
javac
.前段时间我读到这个 pom 配置来提高编译器性能
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
.....
<dependencies>
<dependency>
<groupId>org.codehaus.plexus</groupId>
<artifactId>plexus-compiler-javac</artifactId>
<version>1.8.6</version>
</dependency>
</dependencies>
</plugin>
我没有尝试过,但它可能对你来说很有趣。
这种改进的解释可以在这里找到。
除了并行构建(上面提到的 -Tn 标志)之外,看看你是否可以在配置文件下隐藏各种额外的东西 - 将测试配置为默认关闭,进行各种标记、代码分析、分发到远程存储库等可选。您也可以尝试在 maven (MAVEN_OPTS env.var) 上投入更多内存