>背景:现在我编写一些脚本将两个文件之间的差异输出到一个文件中。现在我使用 Linux 命令 diff -u。有没有办法在 Ant 中比较文件?这样我就可以使用 groovy + ant + diff,而不需要调用本地命令。
不,ant 中没有 diff 命令。
你可以抓住像java-diff-utils这样的东西并编写你自己的东西(如果你想避免系统diff命令)
@Grab('com.googlecode.java-diff-utils:diffutils:1.2.1')
import difflib.*
def fileAContents = '''Line 1
|Line 2
|Line 3'''.stripMargin().split( 'n' ).toList()
def fileBContents = '''Line 1
|Line Two
|Line 3'''.stripMargin().split( 'n' ).toList()
DiffUtils.diff( fileAContents, fileBContents ).deltas.each {
println it
}
其中打印:
[ChangeDelta, position: 1, lines: [Line 2] to [Line Two]]