Gradle替换文本文件中的字符串:
foo --> bar
导入org.apache.tools.ant.filters.ReplaceTokens
ReplaceTokens要求 token 的格式为:@ token @。
但是在ant中, token 可以是没有@@的任何东西。
from ('/path') {
filter(ReplaceTokens, tokens:["foo", "bar"])
}
它不会工作。逐行更换是解决方案?
from ('/path') {
filter { String line -> line.replaceAll("foo", "bar") }
}
大文件的性能问题?
最佳答案
您应该能够像在Ant中一样配置它,因为它是完全相同的类。因此,以下可能应该起作用:
from ('/path') {
filter(ReplaceTokens, beginToken: '', endToken: '', tokens:["foo", "bar"])
}
但这与逐行浏览文件并没有太大区别,因此我想从性能上来说并没有太大区别。
不过,您应该记住一件事。每当您使用内容过滤时,至少在文件中可能包含非ASCII字符的情况下,请设置
filteringCharset
,否则,将使用系统默认编码,这可能会破坏文件内容,具体取决于您构建的系统。
关于gradle - 没有@@的任何字符串的Gradle replaceToken,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44836095/