外部化Grails应用程序的运行配置

时间:2019-01-07 18:16:40

标签: java intellij-idea grails environment-variables properties-file

是否可以使用Grails 3应用程序针对每个环境配置外部化运行配置? 我知道有一些运行配置参数,可以让他们在开发,生产,测试等环境下运行其应用程序,但是我想知道是否存在一个变量,例如“ grails.env”,我可以在其中进行更改。属性,YAML,配置或其他可以在运行时读取的文件,这些文件将为我执行此操作。

这只是为了避免在一个环境/环境(如我的本地计算机等物理环境)中测试并运行该应用程序,然后将该应用程序分配给另一个人或团队在其他地方运行时,造成混淆。 目标是配置或设置此变量,以便运行团队/个人无需了解或更改运行命令。

我知道如何在intelliJ和Eclipse中使用命令行配置环境。我想知道是否有办法在读取的文件中默认它。 谢谢

1 个答案:

答案 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
      }
}

因此,基本上取决于您从环境块配置中排除的内容,将其配置为应用程序运行的默认配置。

希望这会更好吗?