Java 为什么编译器args只能在fork为true时设置?
从: 如果fork设置为,则设置要传递给编译器的参数 对 为什么需要分叉才能使用自定义参数?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
编译器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。