java - 外部化 Grails 应用程序的运行配置
问题描述
有没有办法使用 Grails 3 应用程序将每个环境配置的运行配置外部化?我知道有运行配置参数允许人们在 dev、prod、test 等环境下运行他们的应用程序,但我想知道是否有一个变量,例如“grails.env”,我可以在一个属性、YAML、配置或其他可以在运行时读取的文件,这些文件将为我执行此操作。
这只是为了避免在一个设置/环境(物理环境,如我的本地机器)中测试和运行的应用程序之间的混淆,然后将其交给另一个个人或团队在其他地方运行。目标是配置或设置此变量,以便运行团队/个人不需要知道或更改运行命令。
我知道如何使用命令行以及在 intelliJ 和 Eclipse 中配置环境。我想知道是否有一种方法可以在读取的文件中默认此设置。谢谢
解决方案
我不确定是什么让您感到困惑,但让我尝试看看是否可以为您指明正确的方向
从这里的文档:http ://docs.grails.org/latest/guide/conf.html#environments您的应用程序可以作为一个包war文件交付给目标用户进行测试,并且可以使用创建war文件任何环境配置
grails test war
由于该命令可以在控制台中运行,因此您可以使用如下系统属性运行:
grails $ENVIRONMENT war
希望这可以帮助
更新 2
默认情况下,grails run-app 与开发环境一起运行,但您可以通过执行强制环境
grails $env run-app
如果您希望在使用 run-app 命令时运行一些默认配置,那么您应该确保该配置不在 application.yml 或 application.groovy 的 environment 块中
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
}
}
因此,基本上取决于您从环境块配置中排除的内容,哪些内容将被配置为您的应用程序运行的默认配置。
希望这有助于更好?
推荐阅读
- python - 如何参数化测试以在 pytest 中使用不同的夹具运行?
- google-bigquery - 如何水平连接来自不同表的列?
- reactjs - 如何在 Material-UI 菜单中使用自定义功能组件
- c# - 如何使用客户端-服务器架构有效地在游戏中发送对象
- reactjs - 多次调用 setState 时延迟
- php - 如何在 PHP 中显示本周的开始和结束日期?
- powershell - 是否可以使用 Invoke Webrequest 登录到使用 Azure AD B2C 身份验证的站点?
- c - 如何解决:传递“sutuntopla”的参数 1 使指针从整数变为没有强制转换警告?
- sql - 如何获取列的 n 个不同值的行
- python - 如何删除从网站上抓取的 \n 表单字符串