Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/grails/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何覆盖默认的Grails环境?_Grails_Environment Variables_Overriding - Fatal编程技术网

如何覆盖默认的Grails环境?

如何覆盖默认的Grails环境?,grails,environment-variables,overriding,Grails,Environment Variables,Overriding,Grails允许您在Config.groovy中为应用程序定义不同的“环境”,如下所示: environments { development { ... } demo { ... } production { ... } } 因此,您可以像这样运行应用程序: grails -Dgrails.env=demo run-app …Grails将以“演示”环境模式运行您的应用程序。默认值为开发,因此如

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

environments {
    development {
        ...
    }
    demo {
        ...
    }
    production {
        ...
    }
}
因此,您可以像这样运行应用程序:

grails -Dgrails.env=demo run-app
…Grails将以“演示”环境模式运行您的应用程序。默认值为
开发
,因此如果您只是执行:

grails run-app
…这与:

grails -Dgrails.env=development run-app
然而,我想知道是否有可能(如果有,如何)将
开发
作为默认值覆盖,并使其成为,比如说,
演示
?以便:

grails run-app
…相当于:

grails -Dgrails.env=demo run-app
想法

然而,我想知道是否有可能(如果有,如何)将开发作为默认值覆盖

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

  • runapp
    的默认环境是
    development
  • test应用程序的默认环境是
    test
  • war
    的默认环境是
    production
简短的答案是否定的(或者至少它没有被记录下来,我无法使它工作),但稍长一点的答案是,即使你可以,你可能也不想这样做

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

还值得注意的是,
开发
运行应用
的默认值,
测试应用
默认为
测试
战争
默认为
生产

development
环境只是一个标签,因此如果您真的想将其用于其他用途(如演示),您可以创建一个单独的
actualDev
环境,但在遥远的将来,当所有人都忘记它是这样设置的时,它可能会引起混乱

好的,但我能做些什么让演示更容易? 我一直在使用标准Grails结构中的
/scripts/
目录来简化安装和演示的开销,因此您可以为演示创建
demo.sh
,如果/当您的应用程序变得更加复杂和相互连接时,它还可以让您安装/拆除任何其他资源