仅在grails目标存在时运行

仅在grails目标存在时运行,grails,war,Grails,War,要为特定环境创建war,请在grails中执行以下操作: grails -Dgrails.env=bladdy war 即使指定的grails.env不存在,它也会创建。如果grails.env不存在,是否允许不使用grails war命令 谢谢。由于ConfigSlurper和ConfigObject解析配置文件的方式,我认为没有一种通用的方法来实现这一点。解析文件时,首先设置“全局”变量,然后设置指定环境的变量。无法知道其他哪些环境处于活动状态,因为它们没有保存在内存中。您可以手动解析Co

要为特定环境创建war,请在grails中执行以下操作:

grails -Dgrails.env=bladdy war
即使指定的
grails.env
不存在,它也会创建。如果grails.env不存在,是否允许不使用grails war命令


谢谢。

由于
ConfigSlurper
ConfigObject
解析配置文件的方式,我认为没有一种通用的方法来实现这一点。解析文件时,首先设置“全局”变量,然后设置指定环境的变量。无法知道其他哪些环境处于活动状态,因为它们没有保存在内存中。您可以手动解析
Config.groovy
,但这很脆弱

但您可以在
scripts/\u 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
   }
}