ant.propertyFile обновляет комментарий каждый раз - PullRequest
0 голосов
/ 14 декабря 2018

В моем файле build.gradle есть следующая переменная для указания среды, в которую я строю:

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

И на моем application.properties у меня есть следующая строка для пружины, чтобы использовать правильнуюapplication-{env}.properties:

spring.profiles.active=local

Я создал задачу gradle для обновления этого значения на моем application.properties следующим образом:

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

Задача работает отлично, за исключением добавления одного комментариястрока с отметкой времени обновления.Так что мой application.properties теперь выглядит следующим образом:

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

Это проблема, потому что каждый раз, когда кто-то строит проект, он изменяет этот файл, вызывая конфликты при коммите и отправляя в git.

Любые идеио том, как я мог избавиться от этого комментария?Или даже лучший подход к настройке пружинного профиля?

Спасибо!

1 Ответ

0 голосов
/ 14 декабря 2018

Я не думаю, что это возможно с помощью ant, потому что он реализован с классом java.util.Properties и в javadoc сказано:

... комментарийвсегда пишется строка, состоящая из символа ASCII #, текущей даты и времени (как если бы они были созданы методом toString для Date для текущего времени) и разделителя строк, сгенерированного Writer.

Итак, чтобы избежать этого, вы должны изменить значение в вашем файле свойств другим способом.Например, путем настройки ProcessResources Задача Gradle следующим образом:

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

И значение должно быть установлено на @ENV@ внутри application.properties

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...