是否可以使用Grails 3应用程序针对每个环境配置外部化运行配置? 我知道有一些运行配置参数,可以让他们在开发,生产,测试等环境下运行其应用程序,但是我想知道是否存在一个变量,例如“ grails.env”,我可以在其中进行更改。属性,YAML,配置或其他可以在运行时读取的文件,这些文件将为我执行此操作。
这只是为了避免在一个环境/环境(如我的本地计算机等物理环境)中测试并运行该应用程序,然后将该应用程序分配给另一个人或团队在其他地方运行时,造成混淆。 目标是配置或设置此变量,以便运行团队/个人无需了解或更改运行命令。
我知道如何在intelliJ和Eclipse中使用命令行配置环境。我想知道是否有办法在读取的文件中默认它。 谢谢
答案 0 :(得分:1)
我不确定这是什么让您感到困惑,但让我尝试一下,看看是否可以为您指明正确的方向
从此处的文档:http://docs.grails.org/latest/guide/conf.html#environments,您的应用程序可以作为包war文件交付给要测试的目标用户,并且可以使用任何环境配置来创建war文件
grails test war
由于该命令可以在控制台中运行,因此可以使用以下系统属性来运行:
grails $ENVIRONMENT war
希望这会有所帮助
更新2
默认情况下,grails run-app与dev环境一起运行,但是您可以通过
强制使用环境grails $env run-app
如果您希望在使用run-app命令时运行某些默认配置,则应确保该配置不在application.yml或application.groovy的环境块中
Example of configuration in the environment block:
-----------------------------------------------------
environment{
development{
appConfig{
ishybrid = true
}
}
}
Example of configuration not in any environment block:
-------------------------------------------------------
appConfig{
ishybrid = true
}
environment{
development{
//other configs
}
}
因此,基本上取决于您从环境块配置中排除的内容,将其配置为应用程序运行的默认配置。
希望这会更好吗?