我正在使用 Gradle 应用程序插件 来运行主类。我知道我们可以使用
applicationDefaultJvmArgs
提供虚拟机参数。当我尝试通过提供 VM args -Dfoo=bar 使用 IntelliJ gradle run configs(或外部 shell 脚本)作为 gradle run
运行代码时,它们不会在 applicationDefaultJvmArgs
中使用。
如何将外部虚拟机参数附加到
applicationDefaultJvmArgs
中指定的参数?
我怀疑你想使用
applicationDefaultJvmArgs
,因为这适用于传递给 arguments
命令的原始 java
,而不仅仅是传递给主类的参数。相反,配置由应用程序插件添加的 run
任务会更容易。
要使用这种方法传递给主类,您可以在构建脚本中执行以下操作:
// Kotlin DSL
tasks.named<JavaExec>("run") {
if (ext.has("jvmArg")) args(ext["jvmArg"] as String)
}
// Groovy DSL
tasks.named('run') {
if (ext.has('jvmArg')) args(jvmArg)
}
并使用
-P
标志从命令行运行它,该标志添加了 项目属性:
./gradlew run -PjvmArg=foo
这样的命令将“foo”作为参数传递给主类。