【问题标题】:Gradle: Load property file dependent on profileGradle:根据配置文件加载属性文件
【发布时间】:2017-03-05 13:06:53
【问题描述】:

我想编写一个 gradle 构建脚本,它可以在不同的环境(开发、实时)中工作。 在每个环境中,我都必须加载不同的属性集(目标目录、数据库等)。

是否有根据环境或配置文件读取属性文件的 gradle 方式?

【问题讨论】:

    标签: gradle


    【解决方案1】:

    您可能想查看Gradle Properties Plugin

    包含插件:

    plugins {
      id 'net.saliman.properties' version '1.4.2'
    }
    

    创建属性文件:

    gradle-dev.properties
    

    gradle-prod.properties
    

    调用gradle:

    gradle myTask -PenvironmentName=dev
    gradle myTask -PenvironmentName=prod
    

    【讨论】:

    • 这就是解决方案。我只是想知道,那个 gradle 不支持开箱即用。
    • 你应该阅读整篇文章,这是 gradle 的属性处理的优秀文档。
    • 你有一个带有多环境配置文件的小示例项目吗?这将为许多人节省大量时间
    【解决方案2】:

    还可以查看 gradle 的 equivalent 的 maven 个人资料。

    【讨论】:

      【解决方案3】:

      我有同样的问题,但我使用 spring 并将其配置为从 classpath:application.properties 读取属性

      在这种情况下,您可以使用 java 插件将其添加到 gradle.build

      if (project.hasProperty('env')) {
          println "Target environment: $env"
          sourceSets.main.resources.srcDir "src/main/environment/$env"
      }
      

      这适用于基于环境的不同文件夹

      所以要基于环境'dev'添加资源,你应该有'src/main/environment/dev'文件夹(带有属性文件),并调用gradle:gradle myTask -Penv=dev

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2012-05-27
        • 2017-05-06
        • 1970-01-01
        • 2017-09-02
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2021-10-02
        相关资源
        最近更新 更多