我有一个包含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所指出的那样,您可以使构建变成多线程,从而导致测试同时运行(可能会破坏您的测试),但这并不能使编译并发运行。
有一段时间我读到了关于这个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环境变量)。