代码之家  ›  专栏  ›  技术社区  ›  João Menighin

ant.propertyFile每次都会更新注释

  •  1
  • João Menighin  · 技术社区  · 6 年前

    在我的 build.gradle 文件I具有以下变量,用于指示要构建的环境:

    buildscript {
        ext {
            springBootVersion = '1.5.15.RELEASE'
            kotlinVersion = '1.2.70'
            queryDslVersion = '4.1.4'
            env = 'local'
        }
        // ...
    }
    

    在我的 application.properties 我有下面一行,让spring使用正确的 application-{env}.properties :

    spring.profiles.active=local
    

    详情如下:

    task setEnv {
        doFirst {
            ant.propertyfile(file: "$projectDir/src/main/resources/application.properties") {
                entry( key: "spring.profiles.active", value: "$env")
            }
            println "Building with env = $env"
        }
    }
    

    除了添加一行带有更新时间戳的注释外,该任务工作正常。所以我的 应用程序属性 现在看来:

    #Fri, 14 Dec 2018 11:22:04 -0200
    spring.profiles.active=local
    

    这是一个问题,因为每次有人构建项目时,它都会更改此文件,在提交和推送到git时会导致冲突。

    你有什么想法可以让我摆脱这个评论吗?或者是设置弹簧轮廓的更好方法?

    谢谢

    1 回复  |  直到 6 年前
        1
  •  1
  •   Stanislav    6 年前

    我认为用ant是不可能的,因为它是用 java.util.Properties javadoc 即:

    …始终写入注释行,由ASCII组成# 由作者生成。

    因此,为了避免这种情况,您必须以其他方式更改属性文件中的值。例如,通过在 ProcessResources Gradle task

    processResources {
      filesMatching('**/*.properties') {
        filter {
            it.replace('@ENV@', "$env")
        }
      }
    }
    

    并且该值应设置为 @ENV@ application.properties