需求:要实现在windows或linux下的自动对比打得WAR包,进行增量发布(缺点就是只能增量部署增加的和修改的,对删除的不能进行减量部署)
具体实现:利用Beyond Compare 3来实现,功能很强大,不仅能针对文件夹进行对比,还可以针对war包里面的文件内容进行对比。
其脚本BCP.txt,内容如下:
option confirm:yes-to-all
#compare using crc
criteria crc
#load current files against snapshot from the last patch
load %1 %2
#expand to affect subfolders and files
expand all
#select updated files
select left.diff.files left.orphan.files
#copy changes to a zip file
copyto left path:relative %3
#update the snapshot
#snapshot save-crc left output:"D:\diff.txt"
windows的命令行下执行:
"C:\Program Files (x86)\Beyond Compare\BComp.com" @d:\bcp.txt "D:\esbjk-.0.1-SNAPSHOT1.war" "D:\esbjk-0.0.1-SNAPSHOT2.war" d:\diff.zip /silent(注意前面的包是上一个版本,后面的包是新版本,在bcm图形界面下好像正相反,左边需要放最新版本的。)
linux下执行: (注意的是Beyond Compare 3在Linux执行时需要x-windows的,所以要想实现持续集成执行任务,需要结合export DISPLAY=:0.0,silent是静默模式,linux下用-,而不是用/,有的linux版本必须用-silent参数,不然执行完不会退出)
/bcm/bin/bcompare @"/root/BCP.txt" esbjk-0.0.1-SNAPSHOT1.war esbjk-0.0.1-SNAPSHOT2.war diff1.zip -silent