gpt4 book ai didi

gradle - 如何从 gradle 构建更改属性文件中的值

转载 作者:行者123 更新时间:2023-12-02 11:43:43 25 4
gpt4 key购买 nike

我是 Gradle 新手。我正在使用 Eclipse Buildship 2.1.1。我想将构建时间戳包含在源代码中的属性文件中。我在 build.gradle 中做了类似的事情,

war {
def propertyFile = file
"src/main/java/com/about/About.properties"
def props = new Properties()
propertyFile.withReader { props.load(it) }
println "Before setProperty:"
println props.getProperty('releaseDate')
props.setProperty('releaseDate', new Date().format('yyyy-MM-dd-HH:mm:ss'))
// propertyFile.withWriter { props.store(it) }
println "After setProperty:"
println props.getProperty('releaseDate')
buildDir = new File(rootProject.projectDir, "gradleBuild/" + project.name)
}

这将正确打印以下详细信息,

Before setProperty:
2017-11-22T19:28
After setProperty:
2017-11-24-10:53:57

但这并没有反射(reflect)在属性文件本身中。如果删除 propertyFile.withWriter { props.store(it) } 的注释,则会抛出错误,

No signature of method: java.util.Properties.store() is applicable for argument types: (java.io.BufferedWriter) values: [java.io.BufferedWriter@9a24ce]
Possible solutions: store(java.io.OutputStream, java.lang.String), store(java.io.Writer, java.lang.String), sort(), sort(java.util.Comparator), sort(groovy.lang.Closure), size()

这种方法正确吗还是我应该以其他方式这样做?

最佳答案

您必须将属性写回文件才能更新文件。 propertyFile.withWriter { props.store(it) } 行会抛出错误,因为 store 方法需要 2 个参数。第二个参数是添加在文件顶部的注释,但如果不需要它可以为 null:

propertyFile.withWriter { props.store(it, null) }

关于gradle - 如何从 gradle 构建更改属性文件中的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47466939/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com