我正在翻译一个Java应用程序,使用一个带有各种*.properties
文件的ResourceBundle
。现在,我想有一个Gradle任务,或者想修改一个任务,通过将其替换为 ASCII 表示来自动转义任何 unicode 字符,就像Java的native2ascii
工具一样。
这就是我到目前为止对构建文件所做的,但是输出仍然是未转义的:
import org.apache.tools.ant.filters.EscapeUnicode
tasks.withType(ProcessResources) {
filesMatching('**/*.properties') {
println "\t-> ${it}"
filter EscapeUnicode
}
}
- 任何帮助都值得感谢 *
2条答案
按热度按时间polkgigr1#
您可以通过为属性文件提供额外的复制规范来实现这一点,方法如下:
jutyujz02#
The solution given by stanislav导致了重复的文件冲突(我认为这从相同的源文件创建了一个新的“管道”,只包括“属性”文件,过滤,并写入与原始任务相同的目录,但任务的原始“管道”保持不变)。
对于任何希望在不重复的情况下做到这一点的人,这里是我的解决方案。它还使用了
Native2AsciiFilter
而不是EscapeUnicode
,这应该会给予与native2ascii
maven工具更相似的结果。这个过滤器作用于行而不是文件(它不扩展java.io.FilterReader
),所以我们不能直接将它用作filter
的参数。