【发布时间】:2014-11-06 23:55:28
【问题描述】:
在我的项目中,我尝试在我的 build.gradle 中使用这样的系统环境配置我的应用程序:
apply plugin: 'application'
applicationDefaultJvmArgs = ["-Ddw.server.applicationConnectors[0].port=${System.env.PORT}"]
如果 PORT 设置为常量,例如 9001,则此方法有效。但如果我将 PORT 更改为另一个变量,可执行脚本不会更改,它已在 build/install/bin 中编译为 PORT 的旧值/{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"'
【问题讨论】:
-
我本可以使用 WEBAPP_OPTS 作为解决方法,但我真的希望让配置尽可能简单。
-
也许可以试试
${System.getenv('PORT')}? -
@opal 这会呈现相同的结果。
-
可能是值如何转义的错误。
标签: gradle