11

我有一个包含 13 个子模块的 Maven 项目。我有两个问题如何优化构建过程:

  1. 我只想为 x86-64 服务器编译 Java 代码。我如何配置 Maven 来做到这一点?
  2. 我有一个有 4 个 CPU 内核的服务器。是否可以使用多线程来编译代码?
4

5 回答 5

15

2)mvn package -T 2C将使用每个 CPU 核心 2 个线程构建

于 2012-07-24T11:50:56.030 回答
11
  1. 我只想为 x86-64 服务器编译 Java 代码。我如何配置 Maven 来做到这一点?

Java是跨平台的。你不能让它只为 x86-64 编译。

.2. 我有一个有 4 个 CPU 内核的服务器。是否可以使用多线程来编译代码?

javac是多线程的。它可能不会使用您拥有的所有内核,但这是您可以做到的多线程。

正如 Andrew 所指出的,您可以使构建多线程,这会导致测试同时运行(这可能会破坏您的测试)这不会使编译并发。

于 2012-07-24T11:48:25.090 回答
5
  1. Maven 调用标准javac.
  2. 是的,有可能,请参阅Maven 3 中的并行构建
于 2012-07-24T11:48:31.453 回答
4

前段时间我读到这个 ​​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>

我没有尝试过,但它可能对你来说很有趣。

这种改进的解释可以在这里找到。

于 2012-07-24T14:26:52.830 回答
2

除了并行构建(上面提到的 -Tn 标志)之外,看看你是否可以在配置文件下隐藏各种额外的东西 - 将测试配置为默认关闭,进行各种标记、代码分析、分发到远程存储库等可选。您也可以尝试在 maven (MAVEN_OPTS env.var) 上投入更多内存

于 2012-07-24T11:56:31.800 回答