如何通过环境变量覆盖grails属性?

时间:2017-01-10 14:11:57

标签: grails

Grails版本:3.2.4

有没有办法通过环境变量覆盖grails.*属性?例如:

grails war
java -Dgrails.env=myenv build/libs/myapp-0.1.war

不添加-Dgrails.env=myenv,而是使用环境变量。

并且,如何在grails server.contextPath中设置3.2.4

1 个答案:

答案 0 :(得分:0)

这是我用来在grails配置中拥有自定义数据的方法。在这种情况下,我正在设置一个配置属性(grails.app.root)来保存我的应用程序中的默认安装位置,在我的情况下,无论它是安装在云端还是客户办公室内,都会有所不同。

首先我查看是否通过属性(使用-D)传入,第二次是否是环境变量,第三次是回到catalina基础(因为它在Tomcat中运行)

String catalinaBase = System.getProperty('catalina.base')
grails.app.root = System.getProperty("APPROOT") ?: System.env.APPROOT ?: catalinaBase