每当我向gradle.properties文件添加属性时,文件中的注释都会被删除。我想保留所有评论。注释定义为带有#
的任何内容用于更新gradle.properties文件的任务如下所示:
task updateSomeProperty << {
if(project.hasProperty('mynewProperty')) {
File gradleProperties = file("gradle.properties")
Properties props = new Properties()
props.load(new FileInputStream("gradle.properties"))
props.put("moldProperty",project.getProperty('mynewProperty'))
props.store(new FileWriter(gradleProperties),null);
println 'Updated old property to new property.'
}
}
并在命令行上运行gradle updateSomeProperty -PmynewProperty=1234
一切正常,属性被注入文件,但文件中的注释被清除。注意我在props.store中使用null(new FileWriter(gradleProperties),null);我在想如果我通过了一个空的评论它会保留评论,但它不起作用。我该怎么做?
如果我无法保留评论,是否有办法获取所有评论,然后我可以使用fileWriter命令将它们放回去: props.store(新的FileWriter(gradleProperties),MY_COMMENTS);
答案 0 :(得分:0)
不幸的是,因为你使用普通的java属性实例,根据Properties#store()方法,comments参数是一个新的注释,而且它只是新保存的属性文件的第一行的注释。如果您想存储预览评论,则应尝试其他解决方案。例如,您必须提供自己的实现pf属性,并使用它来在exosting属性文件中存储新属性。你可以在互联网上找到一些例子,比如one here。但可以肯定的是,Gradle脚本似乎并不简单。