如何覆盖默认的Grails环境?

时间:2014-05-28 15:51:58

标签: grails environment-variables override

Grails允许您定义不同的环境"对于Config.groovy内的应用,请执行以下操作:

environments {
    development {
        ...
    }
    demo {
        ...
    }
    production {
        ...
    }
}

因此您可以像这样运行您的应用程序:

grails -Dgrails.env=demo run-app

... Grails将在"演示"中运行您的应用程序环境模式。默认值为development,因此,如果您只执行:

grails run-app

......它与:

相同
grails -Dgrails.env=development run-app

但是我想知道是否有可能(如果是这样,如何)覆盖development作为默认值,并将其设为demo?这样:

grails run-app

......相当于:

grails -Dgrails.env=demo run-app

思想?

2 个答案:

答案 0 :(得分:5)

  

但是我想知道是否有可能(如果是这样,如何)将开发覆盖为默认

不,这是不可能的。顺便提一下,默认环境取决于命令,例如

  • run-app的默认环境为development
  • test-app的默认环境为test
  • war的默认环境为production

答案 1 :(得分:4)

简短的回答是否定的(或者至少它没有记录,我无法使其正常工作),但稍微长一点的答案就是即使你可能不想这样做。

通过更改默认环境,您将为新开发人员创建一个额外的入门门槛,并且可能会有相当多的“哦,该死的,默认情况下它不会在dev中运行,当然是”时刻。

值得注意的是,developmentrun-app的默认值,test-app默认为testwar默认为production

development环境只是一个标签,所以如果您真的想将它用于其他内容(例如演示),您可以创建一个单独的actualDev环境,但同样可能会当所有人都忘记了它的设置时,会在遥远的未来造成混乱。

好的,但是我可以做些什么来简化演示?

我一直使用标准Grails结构中的/scripts/目录来简化设置和演示开销,因此您可以为演示创建demo.sh,这也可以让您设置/拆除任何其他资源,如果/当您的应用程序变得更加复杂和相互关联时。