如何在应用程序默认的jvm args for gradle中获取$ $?

时间:2014-03-03 17:18:18

标签: gradle

使用我指定的应用程序任务:

applicationDefaultJvmArgs = ['$DEBUG_OPTS',
  '-Djava.library.path=${ZMQ_LIB_PATH}']

在生成的启动脚本中,我看到:

DEFAULT_JVM_OPTS='"\$DEBUG_OPTS" "-Djava.library.path=\${ZMQ_LIB_PATH}"'

我不希望\$在那里。我尝试使用'$$DEBUG_OPTS''\$DEBUG_OPTS',但得到了相同的结果。什么是逃脱$的正确方法,以便最终在脚本中没有反斜杠?

2 个答案:

答案 0 :(得分:2)

我有类似的问题,尝试在那里添加一个命令行参数$ 1。随着一些谷歌搜索提出了这个解决方案,事后修复脚本。

applicationDefaultJvmArgs=['-Dmy.property=DOLLARONE']

...

startScripts{
    doLast{
        def bashFile = new File(getOutputDir(),applicationName)
        String bashContent = bashFile.text
        bashFile.text = bashContent.replaceFirst('DOLLARONE',       Matcher.quoteReplacement('$1'))
    }
}

答案 1 :(得分:1)

StartScriptGenerator code暗示' $'将无条件地替换为' \ $'。

我认为您打算使用' $' shell参数扩展的字符,但我想指出这种用法(如果生成脚本的gradle任务允许)在bash和bat脚本之间不可互操作 - 在bash中它将用于shell参数扩展但是在蝙蝠它没有意义。