在我的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
我创建了一个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时引起冲突。
关于我如何摆脱该评论的任何想法?甚至是一种更好的设置弹簧轮廓的方法?
谢谢!
答案 0 :(得分:1)
我认为蚂蚁是不可能的,因为它是通过java.util.Properties
类实现的,并且在javadoc中说:
...总是写一条注释行,由ASCII#组成 字符,当前日期和时间(就像由toString产生的一样) 当前时间的Date方法),并使用行分隔符 由Writer生成。
因此,为避免这种情况,您必须以其他方式更改属性文件中的值。例如,通过如下配置ProcessResources
Gradle task:
processResources {
filesMatching('**/*.properties') {
filter {
it.replace('@ENV@', "$env")
}
}
}
该值应在@ENV@
内设置为application.properties