是否可以在无法使用占位符/标记的 gradle 中进行简单的字符串替换。
例如:给定temp.txt
替换所有出现的xxx
with yyy
。
阅读以下文本:
String contents = new File( 'whatever.txt' ).getText( 'UTF-8' )
替换文本
contents = contents.replaceAll( 'xxx', 'yyy' )
再把文字写出来
new File( 'replaced.txt' ).write( contents, 'UTF-8' )
您应该能够将它们包装成一个任务并像往常一样调用该任务
我假设您正在谈论资源处理。在这种情况下,您可以使用自由格式filter
方法:
processResources {
filter { String line -> line.replace(...) }
}
要就地替换:
ant.replaceregexp(file: fout, flags: "g",
match: 'schemaLocation="[^"]+/', replace: 'schemaLocation="', encoding: 'UTF-8')
语法参考:
这是 @tim_yates 答案的 Kotlin DSL 等效项:
val file = file("whatever.txt")
val newContents = file.readText().replace(Regex("xxx"), "yyy")
file.writeText(newContents) // Overwrites the file with the new content