Gradle字符串替换 - 没有占位符

时间:2012-05-10 11:01:22

标签: groovy gradle

是否可以在gradle中使用占位符/标记进行简单的字符串替换 不能使用。

例如:给定temp.txtxxx的所有出现替换为yyy

4 个答案:

答案 0 :(得分:47)

阅读以下文字:

String contents = new File( 'whatever.txt' ).getText( 'UTF-8' ) 

替换文字

contents = contents.replaceAll( 'xxx', 'yyy' )

再次写出文字

new File( 'replaced.txt' ).write( contents, 'UTF-8' )

您应该能够将它们包装成任务并正常调用该任务

答案 1 :(得分:1)

我假设你在谈论资源处理。在这种情况下,您可以使用自由格式filter方法:

processResources {
  filter { String line -> line.replace(...) }
}

答案 2 :(得分:0)

替换就地:

ant.replaceregexp(file: fout, flags: "g",
      match: 'schemaLocation="[^"]+/', replace: 'schemaLocation="', encoding: 'UTF-8')

语法参考:

答案 3 :(得分:0)

这是@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