ant.propertiesFile每次都会更新注释



在我的build.gradle文件中,我有以下变量来指示我正在构建的环境:

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

我创建了一个渐变任务来更新我的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时引发冲突。

有什么想法可以让我摆脱这种评论吗?甚至是设置弹簧轮廓的更好方法?

谢谢!

我认为ant不可能,因为它是用java.util.Properties类实现的,并且在javadoc中说:

。。。注释行总是由ASCII组成#字符,当前日期和时间(好像由toString生成当前时间的Date方法(,并使用行分隔符作为由编写器生成。

因此,为了避免这种情况,您必须以其他方式更改属性文件中的值。例如,通过如下配置ProcessResourcesGradle任务:

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

该值应在application.properties内设置为@ENV@

最新更新