要为特定环境创建战争,请执行以下操作:
grails -Dgrails.env=bladdy war
即使指定的grails.env
不存在,也会创建。如果grails.env不存在,无论如何都不允许grails war命令。
感谢。
答案 0 :(得分:2)
由于ConfigSlurper
和ConfigObject
解析配置文件的方式,我认为没有办法以一般方式执行此操作。在解析文件时,首先设置“全局”变量,然后设置指定环境的变量。没有办法知道其他环境是活跃的,因为它们没有保存在内存中。您可以手动解析Config.groovy
,但这样会很脆弱。
但是你可以在scripts/_Events.groovy
中添加一个事件回调并检查一个没有默认设置的变量,并且只在环境块中设置:
import grails.util.Environment
eventCreateWarStart = { warName, stagingDir ->
if (!config.containsKey('someRequiredVar')) {
println "\nERROR: environment $Environment.current is not valid\n"
System.exit 1
}
}