将 $ 字符传递给 Gradle 启动脚本(应用程序插件)
Pass $ character to Gradle start scripts (Application plugin)
我有一个使用 Application 插件的 Gradle 构建脚本,我想将包含 $
字符的字符串作为 JVM 参数传递,但我不能,因为它总是转换为 $
字符序列...
这是我的配置:
application {
mainClass = 'example.Main'
application.applicationDefaultJvmArgs = ['-javaagent:$APP_HOME/lib/agent.jar']
}
但是在启动脚本中我得到:
DEFAULT_JVM_OPTS='"-javaagent:$APP_HOME/lib/agent.jar"'
因此 \
它不起作用,我需要值为 -javaagent:$APP_HOME/lib/agent.jar
。我尝试的所有方法都得到了相同的结果(使用插值,将 $ 作为 \u0024
传递,等等)。
我在这个 answer 中找到了解决相关问题的方法。有问题的代码如下:
startScripts {
doLast {
unixScript.text = unixScript.text.replace('\$APP_HOME', '$APP_HOME')
//do something like this for Windows scripts if needed too
}
}
我有一个使用 Application 插件的 Gradle 构建脚本,我想将包含 $
字符的字符串作为 JVM 参数传递,但我不能,因为它总是转换为 $
字符序列...
这是我的配置:
application {
mainClass = 'example.Main'
application.applicationDefaultJvmArgs = ['-javaagent:$APP_HOME/lib/agent.jar']
}
但是在启动脚本中我得到:
DEFAULT_JVM_OPTS='"-javaagent:$APP_HOME/lib/agent.jar"'
因此 \
它不起作用,我需要值为 -javaagent:$APP_HOME/lib/agent.jar
。我尝试的所有方法都得到了相同的结果(使用插值,将 $ 作为 \u0024
传递,等等)。
我在这个 answer 中找到了解决相关问题的方法。有问题的代码如下:
startScripts {
doLast {
unixScript.text = unixScript.text.replace('\$APP_HOME', '$APP_HOME')
//do something like this for Windows scripts if needed too
}
}