java - 使用 Maven 时,<fork>true</fork> 在 pom.xml 中意味着什么?

标签 java maven pom.xml

我正在使用 maven 3.3.3。我有 <fork>true</fork> .我遇到了问题(MojoException)并通过注释掉修复了它

 <fork>true</fork>
 <compilerVersion>${java.version}</compilerVersion>

我的项目使用的是 Java 1.6,上一行中的 java.version 指的是 1.6,但是我的计算机环境变量是 1.7,而 maven 3.3.3 需要 Java 1.7。现在我的问题已经解决了。

但是我看不懂 1)fork在这里是什么意思? 2)它有什么作用? 3) 将其设置为 true 或 false,会发生什么变化?

我浏览了文档,但很难理解。谢谢。

最佳答案

true意味着它将创建(fork)一个新的 JVM 来运行编译器。这有点慢,但隔离性更好。

特别是您可以指定一个与 Maven 启动时不同的 JVM,并且您也可以仅在这种情况下指定命令行参数 ( for increasing Heapsize or Metaspace )。在您的情况下,它会导致问题,因为它似乎使用了错误的 JVM,您可以指定 full path with <executable> toolchain configuration .

这是一种使用现代 Maven 的方法,它不与 Java 1.6 一起运行,但仍然为旧的源/目标版本使用干净的编译环境。

false意味着它直接在运行 Maven 的 JVM 中启动编译器,这使得构建的可重复性降低。

关于java - 使用 Maven 时,<fork>true</fork> 在 pom.xml 中意味着什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41270364/

相关文章:

java - 我有一些关于 jframe 和 jlabel 的问题?

main 方法之外的 Java 类实例

maven - Intellij 浏览多个 Maven 项目

java - Google 代码风格在 Intellij 中格式化 maven pom 很奇怪

java - 编译 fatal error : java. lang.Il legalAccessError : class lombok. javac.apt.LombokProcessor

java - maven:pom.xml + 在 Windows dos-shell 中编译 + 执行

java - 基本安卓 : syntax for switch statement instead of else-if

java - java中如何停止while循环?

java - 有没有办法将多个配置文件保存在插件文件夹的子文件夹中(Spigot 和 Maven)

spring - 将 Spring boot 应用程序部署到 Heroku 时出错