要为特定环境创建战争,请在 grails 中执行以下操作:
grails -Dgrails.env=bladdy war
即使指定的grails.env
不存在,它也会创建。如果 grails.env 不存在,是否无论如何不允许 grails war 命令。
谢谢。
由于如何解析配置文件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
}
}