我正在使用 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/