我有两个目录,其中包含一些* .jar和* .war存档,以及一些元数据文件和一个带有* .spring扩展名的文件,它实际上只是一个奇怪名称的zip文件。像这样:
- dist1
- a subfolder
- some text file.txt
- application-context.xml
- arch1.jar
- arch2.jar
- arch3.jar
- super-cool.war
- xtremely-awesome.spring
- dist2
- a subfolder
- some text file.txt
- application-context.xml
- arch1.jar
- arch2.jar
- arch3.jar
- super-cool.war
- xtremely-awesome.spring
我想在这些目录上进行目录比较,比较档案就好像它们是子文件夹而不是二进制文件。其他文件,包括档案外部和内部的文本和二进制文件,都应该照常进行比较。
我知道我可以手动爆炸所有档案并比较爆炸版本,但由于它们是由构建脚本生成的并且爆炸它们会增加相当多的时间来构建项目,所以更好的做法比较,最好是在diff工具中。
我已尝试将WinMerge与7zip plugin一起使用,但我无法使插件正常工作(文件在文件夹比较视图中无法识别为档案)。我已经尝试过将其作为一个"共享安装"并作为特定应用程序安装" (将安装程序指向C:\Programs\WinMerge\WinMergeU.exe
)。我还尝试手动将插件中的.dll文件复制到MergePlugins
文件夹中,但没有成功。
如何在WinMerge中使用它?如果不可能,还有其他一些具有此功能的好工具吗?
答案 0 :(得分:3)
在WinMerge 2.14.0 1 中,启用存档支持的最简单方法是
图像和解决方案是由WinMerge的开发人员jtuc完成的。我在a WinMerge forum thread找到了它们。
然后,如果您比较两个JAR文件(或任何其他基于档案的格式的文件,例如ODF或OOXML),则应比较它们的内容,就像它们首先被提取一样。它适用于Windows 10。
WinMerge手册中提到了installing archive support的一些详细信息。
1 WinMerge 2.14.0是2017-06版的最新稳定版,于2013-02-03发布。
2 Merge7z DllBuild 0028是2015-09版的最新版本,于2010-12-28发布。
3 Merge7z DllBuild 0028中的7-Zip 9.20的DLL为Merge7z920.dll
和Merge7z920U.dll
,WinMerge可执行文件的路径可能为C:\Program Files (x86)\WinMerge\WinMergeU.exe
。 “U”代表DLL和可执行文件名中的Unicode。对于WinMergeU.exe
,只需要Merge7z920U.dll
,但两者都更好,而且不必关心。
答案 1 :(得分:2)
WinMerge可以使用非标准文件扩展名打开存档文件吗? (例如.jar文件作为zip文件)
是:单击“选项”按钮 (或单击编辑→选项)。在“存档支持”页面中,启用 从文件签名选项中检测存档类型。
答案 2 :(得分:2)
如果你想将difereneces目录与文件类型* .jar,* .war,* .ear..etc进行比较,一个很好的选择是超越比较软件http://www.scootersoftware.com/。不是免费的,但你有一个试用选项来证明它。它是多平台的linux,windows或macosx。