美文网首页
如何对gradle task进行环境隔离?

如何对gradle task进行环境隔离?

作者: 张培_ | 来源:发表于2017-09-10 11:05 被阅读60次

    QUESTION:如何对gradle task进行环境隔离?

    • Q1:spring-Boot中明明提供了profile进行环境隔离的方式,我们为啥不适用profile进行gradle task的环境隔离呢?
    • A1:我们肯定不会使用profile进行隔离

      • R1:profile不同环境的属性起作用的过程:

        • 运行Application
        • Application首先去application.properties文件中加载配置属性。在spring.profiles.active=**得知当前application运行的环境
        • 然后根据环境名,获取对应的环境的profile文件中的配置。
        • 这时候才开始执行代码

        因此--> spring-boot-profiles仅仅作用于应用运行阶段

      • R2:任何一个gradle task都可以独立于application被运行,甚至运行application的 仅仅包含在一个build或者是bootRun task而已。

       因此-->我们必须专门为gradle的task运行做环境分离的配置。也就是,我们需要在某一个task运行之前获取当前环境,并且加载对应环境的配置option
      
    • Q2:我们该如何为每一个gradle task加载配置呢?
    • A2: gradle提供了gradle.properties专门用来写配置。

      • Note:如果你仅仅在项目的根目录下面存放一个gradle.properties文件,就会在每一个gradle task运行的时候直接加载gradle.properties中的配置。
    • Q3:如何使用gradle 的properties文件做环境隔离呢?
    • A3:gradle提供了方式,但是需要插件支持:

      • 首先:需要在项目的根目录下创建gradle-**.properties文件而这里的**指的是:evironmentName`
      • 其次:需要在settings.gradle中加入插件id 'net.saliman.properties' version '1.4.2'才能进行根据环境设定选择不同属性进行加载。
      • 运行task的时候执行指令中,需要带环境名字gradle myTask -PenvironmentName=dev
    Q4:使用profile进行环境隔离方式,使用的application-dev.properties可以修改为yml文件,那么能够将gradle-dev.properties修改成gradle-dev.yml吗?
    • A4:尝试后发现不行,gradle take运行的时候只能识别gradle-*.properties文件。

    相关文章

      网友评论

          本文标题:如何对gradle task进行环境隔离?

          本文链接:https://www.haomeiwen.com/subject/ntmzjxtx.html