仅在存在grails目标时运行

时间:2013-09-09 12:01:51

标签: grails war

要为特定环境创建战争,请执行以下操作:

grails -Dgrails.env=bladdy war

即使指定的grails.env不存在,也会创建。如果grails.env不存在,无论如何都不允许grails war命令。

感谢。

1 个答案:

答案 0 :(得分:2)

由于ConfigSlurperConfigObject解析配置文件的方式,我认为没有办法以一般方式执行此操作。在解析文件时,首先设置“全局”变量,然后设置指定环境的变量。没有办法知道其他环境是活跃的,因为它们没有保存在内存中。您可以手动解析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
   }
}
相关问题