如何有效,快速地编译Maven项目

时间:2012-07-24 11:45:19

标签: java maven

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

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

5 个答案:

答案 0 :(得分:15)

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

答案 1 :(得分:10)

  
      
  1. 我想仅为x86-64服务器编译Java代码。我如何配置Maven来做到这一点?
  2.   

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

  

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

javac是多线程的。它可能不会使用你拥有的所有核心,但是你可以使用多线程。

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

答案 2 :(得分:5)

  1. Maven调用标准javac
  2. 是的,有可能,请参阅Parallel builds in Maven 3

答案 3 :(得分:4)

前段时间我read关于这个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>

我没试过,但对你来说可能很有意思。

可以找到对此改进的解释here

答案 4 :(得分:2)

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

投入更多内存