apply plugin: 'application'
applicationDefaultJvmArgs = ["-Ddw.server.applicationConnectors[0].port=${System.env.PORT}"]
如果PORT被设置为一个常量,比如9001,那么这个方法是可行的。但是如果我将PORT更改为另一个变量,可执行脚本不会改变,它已经编译成旧值的PORT在build/install/bin/{executable-script}中,就像这样:
DEFAULT_JVM_OPTS='"-Ddw.server.applicationConnectors[0].port=9001"'
与我期望的不同,
DEFAULT_JVM_OPTS='"-Ddw.server.applicationConnectors[0].port=$PORT"'
有没有一种方法告诉应用插件使用系统环境变量而不是评估 system.env 变量?顺便说一句,我也尝试过不使用单引号来避免评估 $PORT 表达式。
applicationDefaultJvmArgs = ['-Ddw.server.applicationConnectors[0].port=$PORT']
并且
applicationDefaultJvmArgs = ['-Ddw.server.applicationConnectors[0].port=\$PORT']
但这两个编译后的代码都无法运行,下面是正确的代码。
DEFAULT_JVM_OPTS='"-Ddw.server.applicationConnectors[0].port=\$PORT"'
${System.getenv('PORT')}
? - Opal