如何在 gradle 应用程序插件中附加外部 VM 参数

问题描述 投票:0回答:1

我正在使用 Gradle 应用程序插件 来运行主类。我知道我们可以使用

applicationDefaultJvmArgs
提供虚拟机参数。当我尝试通过提供 VM args -Dfoo=bar 使用 IntelliJ gradle run configs(或外部 shell 脚本)作为
gradle run
运行代码时,它们不会在
applicationDefaultJvmArgs
中使用。

如何将外部虚拟机参数附加到

applicationDefaultJvmArgs
中指定的参数?

java gradle
1个回答
0
投票

我怀疑你想使用

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”作为参数传递给主类。

© www.soinside.com 2019 - 2024. All rights reserved.