在工作中,我们在开发过程中混合使用 Windows 和 Linux 工作站。对于部署,我们总是部署到 Unix 机器上。我想确保行尾始终采用 Unix 格式。Gradle 中实现这一目标的最简单方法是什么?我在想也许可以使用 FilterReader,但我没能找到现成的。这会是最好的选择吗?
问问题
5484 次
2 回答
14
编辑此条目以改用复制任务。它的初始版本使用的是 Tar 任务,但我注意到它在 Linux 中运行时剥离 CRLF,但在 Windows 上却无法正常工作。因为他们都是copyspecs AFAIK,我本来希望Tar 任务工作相同,但遗憾的是情况并非如此(gradle 1.0-milestone-3)。
看来我自己也想通了。所需的 FilterReader 是 FixCrLfFilter。以下代码段显示了您可以如何使用它:
import org.apache.tools.ant.filters.*;
task archiveit(type: Copy) {
from "conf"
into "targetdir"
filter(FixCrLfFilter.class,
eol:FixCrLfFilter.CrLf.newInstance("lf"))
}
于 2011-05-11T03:32:45.980 回答
1
Glen 的回答对我不起作用,所以我想出了更简单的解决方案:
task archiveit(type: Copy) {
from "conf"
into "targetdir"
filter { line -> line.replaceAll('\r\n', '\n') }
}
应该与支持过滤器的所有任务一起工作,包括Tar
任务。
于 2020-01-06T12:42:27.723 回答