0

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

grails -Dgrails.env=bladdy war

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

谢谢。

4

1 回答 1

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
   }
}
于 2013-09-09T13:59:28.970 回答