Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/maven/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 为什么编译器args只能在fork为true时设置?_Java_Maven_Compilation_Maven Compiler Plugin - Fatal编程技术网

Java 为什么编译器args只能在fork为true时设置?

Java 为什么编译器args只能在fork为true时设置?,java,maven,compilation,maven-compiler-plugin,Java,Maven,Compilation,Maven Compiler Plugin,从: 如果fork设置为,则设置要传递给编译器的参数 对 为什么需要分叉才能使用自定义参数? 编译器RGS: 如果fork设置为true,则设置要传递给编译器的参数。例如: -Xmaxerrs=1000 -Xlint -J-Duser.语言=英语 这些参数只有在创建新的JVM时才有意义,而这正是分叉的目的。如果不使用fork,编译器将在与Maven本身相同的JVM中运行。因为如果fork未设置为true,编译过程将在Maven运行的同一JVM实例中进行。JVM参数将与Maven运行的实例的J

从:

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

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

编译器RGS

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


-Xmaxerrs=1000
-Xlint
-J-Duser.语言=英语

这些参数只有在创建新的JVM时才有意义,而这正是分叉的目的。如果不使用fork,编译器将在与Maven本身相同的JVM中运行。

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

它是否有某种机制将参数传递给执行编译的实际模块?这是用于配置一个新JVM(运行javac的JVM),与实际编译无关部分。@Thorbjørnravandersen不太可能:-Xlint是一个javac选项,而不是JVM选项。因此-Xmaxerrs=1000。最后一个可以在Maven JVM中运行编译器之前设置为属性。@JBNizet,对。我使用了
-parameters
javac参数,还要注意,这在Maven中是一个非常古老的东西,它早于编译器API。