Groovy 如何在Gradle中区分文件/文件夹?

Groovy 如何在Gradle中区分文件/文件夹?,groovy,gradle,diff,build-process,Groovy,Gradle,Diff,Build Process,我需要在Gradle中编写一个脚本,将2个文件夹作为输入。 这两个文件夹都包含我很想使用的内容: 然后,您可以以文本形式访问命令的输出: println process.err.text println process.in.text 并通过以下方式获取退出状态: int status = process.waitFor() 许多常见的操作系统都会安装diff,但Windows可能不会安装。我最近编写了一些类似于您要求的代码:;但是,它实际上比较文件的内容(作为散列),而不是时间戳。我愿意对

我需要在Gradle中编写一个脚本,将2个文件夹作为输入。 这两个文件夹都包含我很想使用的内容:

然后,您可以以文本形式访问命令的输出:

println process.err.text
println process.in.text
并通过以下方式获取退出状态:

int status = process.waitFor()

许多常见的操作系统都会安装
diff
,但Windows可能不会安装。

我最近编写了一些类似于您要求的代码:;但是,它实际上比较文件的内容(作为散列),而不是时间戳。我愿意对其进行更新,以接受可配置的策略,如果这符合您的需要,或者您可以只使用所涉及的概念

基本上,它扫描两个目录并确定A和B中缺少的文件,然后还确定两个目录共有的文件,但内容不同


结果收集在一个DirectoryDifference对象中,每个类别都有各自的文件路径。

它需要与平台无关,这就是我使用Gradle的原因。奇怪的是,我现在看到的版本仍然不是。非常好,这看起来像我需要的:)我需要比较二进制内容,而不仅仅是时间戳。这将是我们的art build pipelile的一部分,用于生成包含更改/更新的art资产的.zip文件的脚本。我需要做一些其他的小改动(如果第一个参数目录包含第二个参数不包含的文件,脚本将中止),这个答案中引用的代码似乎由于重构到一个单级项目而移动。现在看来是这样。
int status = process.waitFor()