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
?
答案 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