我认为两者定义相同 - JVM 属性,但两者之间显然存在差异,我找不到明确的解释。如果我在构建的 Jenkins Maven 中同时使用两者,则只有 -D 设置的属性在 System.getProperties() 的 Java 应用程序中可见。尽管 MAVEN_OPTS 也应该传递给 JVM。好像我错过了什么。
感谢解释。
最佳答案
MAVEN_OPTS 是一个环境变量,可让您将参数传递给运行 Maven 的 Java VM。
因此,您可以使用它来设置堆和永久大小(例如 MAVEN_OPTS=-XX:MaxPermSize=256m)。
相比之下,-D参数是命令行参数。 Maven 已经在 Java 中运行,因此您将无法控制 Java 相关参数。
参见 this page有关命令行参数和 MAVEN_OPTS 的解释。
基于此,我猜您看不到该变量的原因是因为它被用作 JVM 参数而不是属性。
也许 this answer会帮你得到它们吗?
关于jenkins - MAVEN_OPTS 与 mvn -D,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38955721/