【发布时间】:2019-01-11 21:07:44
【问题描述】:
我正在尝试使用-Dproperty=value 语法将系统属性传递给 Grails,但它似乎不起作用。这是我的设置:
build.gradle:
bootRun {
addResources = true
systemProperties = System.properties
}
application.yml:
server:
port: '${server_port}'
命令行:
grails -Dserver_port=8180 run-app
当我尝试运行应用程序时,我得到了这个:
java.lang.NumberFormatException:
For input string: "${server_port}"
文档here 建议这种方法应该有效,但显然 ${server_port} 表达式没有被替换为通过 -D 选项传递的值。
任何人都可以解释导致这种行为的原因吗?
另外,在有人问之前.. 是的,我知道 --port 命令行开关。这样做的目的不是专门传递服务器端口,尽管我更愿意与其他脚本保持一致。但除此之外,我还计划使用 -Doption=value 在运行时传递其他设置,所以我真的需要它来工作。
【问题讨论】:
标签: grails groovy grails-3.0