为什么只有fork为true时才能设置compilerArgs?

时间:2016-01-17 10:51:29

标签: java maven compilation maven-compiler-plugin

来自documentation

  

如果fork设置为,则设置要传递给编译器的参数   真。

为什么需要分叉才能使用自定义参数?

2 个答案:

答案 0 :(得分:3)

  

compilerArgs

     

如果fork设置为true,则设置要传递给编译器的参数。例如:

     
<compilerArgs>
  <arg>-Xmaxerrs=1000</arg>
  <arg>-Xlint</arg>
  <arg>-J-Duser.language=en_us</arg>
</compilerArgs>

这些参数只有在创建新的JVM时才有意义,这就是forking的用途。如果不进行fork,则编译器在与Maven本身相同的JVM中运行。

答案 1 :(得分:1)

因为如果fork未设置为true,则编译过程发生在运行Maven的同一JVM实例中。并且JVM args将与Maven运行的实例的JVM args相同。启用分叉后,在JVM的新实例上进行编译,您可以设置该新实例的args。