在Gradle中创建tar文件时,将行尾转换为unix样式的最简单方法是什么?

在Gradle中创建tar文件时,将行尾转换为unix样式的最简单方法是什么?,gradle,newline,Gradle,Newline,在工作中,我们在开发过程中混合使用Windows和Linux工作站。对于部署,我们总是部署到Unix机器上。我希望确保行尾始终为Unix格式。在Gradle实现这一点最简单的方法是什么?我想也许可以使用FilterReader,但我没有找到现成的。这是最好的选择吗?编辑此条目以使用复制任务。最初的版本是使用Tar任务,但我注意到,当它在Linux上运行时剥离了CRLF,但在Windows上却无法正常工作。因为它们都是复制品,所以我本以为Tar任务的工作原理是一样的,但遗憾的是事实并非如此(gra

在工作中,我们在开发过程中混合使用Windows和Linux工作站。对于部署,我们总是部署到Unix机器上。我希望确保行尾始终为Unix格式。在Gradle实现这一点最简单的方法是什么?我想也许可以使用FilterReader,但我没有找到现成的。这是最好的选择吗?

编辑此条目以使用复制任务。最初的版本是使用Tar任务,但我注意到,当它在Linux上运行时剥离了CRLF,但在Windows上却无法正常工作。因为它们都是复制品,所以我本以为Tar任务的工作原理是一样的,但遗憾的是事实并非如此(gradle1.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"))
}

格伦的答案对我不起作用,因此我提出了更简单的解决方案:

task archiveit(type: Copy) {
  from "conf"
  into "targetdir"
  filter { line -> line.replaceAll('\r\n', '\n') }
}

应该处理所有支持过滤器的任务,包括
Tar
task.

什么的行尾?您的资源文件的内容?在我正在创建的tar文件中的配置文件。我发现了一些似乎对我有用的东西,并把它贴在下面。不适合我。我认为“线”不再有它的结尾了。用Gradle 6.1.1进行测试