我认为两者都定义了相同的 JVM 属性,但两者之间显然存在差异,我找不到明确的解释。如果我在构建的 Jenkins Maven 中使用两者,则只有 -D 设置的属性在 System.getProperties() 的 Java 应用程序中可见。尽管 MAVEN_OPTS 也应该传递给 JVM。好像我错过了一些东西。
谢谢你的解释。
MAVEN_OPTS 是一个环境变量,可让您将参数传递给运行 Maven 的 Java VM。
因此,您可以使用它来设置堆和永久大小(例如 MAVEN_OPTS=-XX:MaxPermSize=256m)。
相反,-D 参数是命令行参数。 Maven已经在Java中运行,因此您将无法控制Java相关参数。
See 这一页 https://maven.apache.org/archives/maven-1.x/reference/command-line.html有关命令行参数和 MAVEN_OPTS 的说明。
基于此,我猜测您看不到该变量的原因是因为它被用作 JVM 参数而不是属性。
Perhaps 这个答案 https://stackoverflow.com/questions/1490869/how-to-get-vm-arguments-from-inside-of-java-application会帮助你得到它们吗?
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)