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

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

有没有办法通过 Grails 3 应用程序将每个环境配置的运行配置外部化? 我知道有一些运行配置参数允许人们在开发、生产、测试​​等环境下运行其应用程序,但我想知道是否有一个变量,例如“grails.env”,我可以在属性、YAML、配置或其他可以在运行时读取的文件可以为我完成此操作。

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

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

最佳答案

I'm not to sure what is confusing you here but let me try and see if I can point you in the right direction

来自此处的文档:http://docs.grails.org/latest/guide/conf.html#environments您的应用程序可以作为包 war 文件交付给目标用户进行测试,并且可以使用任何环境配置创建 war 文件

grails test war

由于该命令可以在控制台中运行,因此您可以使用系统属性运行,如下所示:

grails $ENVIRONMENT war

希望这有帮助

Update 2

默认情况下,grails run-app 在开发环境中运行,但您可以通过执行以下操作来强制环境

grails $env run-app

如果您希望在使用 run-app 命令时运行一些默认配置,那么您应该确保该配置不在 application.yml 或 application.groovy 的环境 block 中

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

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

希望这有帮助吗?

关于java - 外部化 Grails 应用程序的运行配置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54079674/

相关文章:

java - 如何使组件跨越 GridBagLayout 中的多个单元格

java - Android AlarmManager 每天下午 3 点运行

javascript - Grails TagLib 获取元素值

grails - Grails的继承以及一对多和多对多关系的冲突

Java:设计除主框架之外的 JFrame

java - 字符串变量的 NullPointEException 错误(初学者)

intellij-idea - 是否有在 IntelliJ IDEA 中插入日期/时间的快捷方式?

java - Intellij IDEA Java Gradle 项目运行

intellij-idea - 库源与类的字节码不匹配

sql - Grails查询以过滤关联并仅返回匹配的实体