如何覆盖默认的Grails环境?

IAm*_*aja 5 grails overriding environment-variables

Grails允许您为应用内部定义不同的“环境”,Config.groovy如下所示:

environments {
    development {
        ...
    }
    demo {
        ...
    }
    production {
        ...
    }
}
Run Code Online (Sandbox Code Playgroud)

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

grails -Dgrails.env=demo run-app
Run Code Online (Sandbox Code Playgroud)

...,Grails将在“演示”环境模式下运行您的应用。默认值为development,因此,如果您仅执行:

grails run-app
Run Code Online (Sandbox Code Playgroud)

...与以下内容相同:

grails -Dgrails.env=development run-app
Run Code Online (Sandbox Code Playgroud)

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

grails run-app
Run Code Online (Sandbox Code Playgroud)

...相当于:

grails -Dgrails.env=demo run-app
Run Code Online (Sandbox Code Playgroud)

有什么想法吗?

Dón*_*nal 6

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

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

  • 的默认环境run-appdevelopment
  • 的默认环境test-apptest
  • 的默认环境warproduction