Java '有什么用;叉子';和';可执行文件';Maven编译器插件中的选项?

Java '有什么用;叉子';和';可执行文件';Maven编译器插件中的选项?,java,maven,maven-compiler-plugin,Java,Maven,Maven Compiler Plugin,Maven编译器插件配置 ... <fork>true</fork> <executable>${env.JAVA_HOME}\bin\javac.exe</executable> ... 。。。 符合事实的 ${env.JAVA\u HOME}\bin\javac.exe ... Maven编译器插件有一个很好的页面,解释所有插件选项 :允许在单独的进程中运行编译器。如果错误 它使用内置编译器,如果为true,则使用 可执行文件 :设置编译器的

Maven编译器插件配置

...
<fork>true</fork>
<executable>${env.JAVA_HOME}\bin\javac.exe</executable>
...
。。。
符合事实的
${env.JAVA\u HOME}\bin\javac.exe
...

Maven编译器插件有一个很好的页面,解释所有插件选项

:允许在单独的进程中运行编译器。如果错误 它使用内置编译器,如果为true,则使用 可执行文件

:设置编译器的可执行文件,以便在使用fork时使用 是真的

添加到:

如果省略
并设置了
true
,maven编译器插件将选择
JAVA\u HOME/bin/javac
二进制文件

如果设置了
false
,maven编译器插件将通过ToolProvider接口选择编译器。这意味着不会启动新的进程,Maven正在运行的Java VM也会进行编译

使用
false
,您还可以使用
compilerId
参数选择另一个编译器

提示:使用默认值,除非你有很好的理由去更改它们。 这是我现在唯一能想到的好理由


使用另一个java安装中的另一个javac不是一个很好的理由:在Maven构建代码时。它分叉了Windows的
javac.exe
进程,该进程是Windows的Java编译器应用程序,因此即使系统中未安装Java,代码也会运行?不,必须在您的计算机上安装javac程序,并且还必须添加到环境变量
${env.Java\u HOME}
表示您安装JavaEL的目录。您知道在系统中不安装java的情况下运行代码的方法吗。就像在pom.xml文件中添加一些东西一样,如果您的计算机上没有安装Java,那么您应该如何运行Maven来读取pom文件配置?另一个原因是:如果您想使用-Xstdout文件重定向编译器输出,您必须使用fork来传递该选项。事实上,任何非标准选项都必须有fork