【问题标题】:Externalizing Run configurations for Grails app外部化 Grails 应用程序的运行配置
【发布时间】:2019-06-02 10:19:05
【问题描述】:

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

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

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

【问题讨论】:

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


    【解决方案1】:

    我不确定是什么让您感到困惑,但让我试试看能否为您指明正确的方向

    从此处的文档中: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
          }
    }
    

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

    希望这会有所帮助吗?

    【讨论】:

    • 感谢您的意见。我正在寻找的是,是否有一种方法可以在项目/应用程序本身内指定/配置,默认情况下在什么环境下运行或构建它。而不是在给出运行命令时指定它。另外,它默认在哪个环境下运行?还是我完全关闭了,因为为了构建或运行 grails 应用程序,您必须指定环境,即。 (grails [默认] 战争)
    猜你喜欢
    • 2014-07-23
    • 1970-01-01
    • 1970-01-01
    • 2021-12-16
    • 2014-08-23
    • 1970-01-01
    • 2012-04-22
    • 2010-11-01
    • 2020-05-28
    相关资源
    最近更新 更多