2013-06-10 3 views
2

У меня есть два каталога, которые содержат несколько архивов * .jar и * .war, а также некоторые файлы метаданных и файл с расширением * .spring, которое на самом деле является просто zip-файлом с нечетным именем. Что-то вроде этого:Получение WinMerge для сравнения .jar-файлов

- 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? И если это невозможно, есть ли еще один хороший инструмент, обладающий этой возможностью?

ответ

2

WinMerge FAQsection 6.4:

Может Winmerge открытых файлов архив с нестандартными файловыми расширениями? (Например, файлы .jar как zip-файлы)

Да: нажмите кнопку «Параметры» (или нажмите «Изменить» → «Параметры»). На странице «Поддержка архива» включите параметр «Определить тип архива » из опции подписи файла.

2

Если вы хотите сравнить difereneces каталоги с типом файлов * .jar, * .war, * .ear..etc хорошие варианты есть несравненной программного обеспечения http://www.scootersoftware.com/. Не является бесплатным, но у вас есть пробный вариант, чтобы доказать это. Это многоплатформенный linux, windows или macosx.

3

В WinMerge 2.14.0 , самый простой способ для того, чтобы поддержка архивов является

  • Загрузите 7-Zip plugin for WinMerge ,
  • использовать его установки, чтобы установить библиотеки DLL и связанные с ними компоненты для последний 7-Zip поддерживается в папке WinMerge (выберите «Установка для конкретного приложения» и «Включить автономную операцию») и
  • изменить настройку WinMerge чтобы использовать эти файлы и автоматически определять тип архива (в разделе «Параметры → Поддержка архивации» выберите «Включить поддержку архивных файлов», «Использовать локальную 7-Zip из папки WinMerge» и «Определить тип архива из подписи файла»).

Plugin installer with correct final settings screenshot
изображение и раствор по своей jt, разработчик WinMerge. Я нашел их в a WinMerge forum thread.

Затем, если вы сравниваете два файла JAR (или файлы в любом другом формате на основе архива, например ODF или OOXML), их содержимое следует сравнивать, как если бы они были извлечены первыми. Он работает для меня на Windows 10.

Некоторые сведения о installing archive support указаны в руководстве WinMerge.

WinMerge 2.14.0 - последняя стабильная версия от 2017-06, выпущенная в 2013-02-03.
Merge7z DllBuild 0028 является последним по состоянию на 2015-09, выпущен в 2010-12-28.
Библиотеки DLL являются Merge7z920.dll и Merge7z920U.dll для 7-Zip 9.20 в Merge7z DllBuild 0028, и путь к исполняемому файлу WinMerge, вероятно, C:\Program Files (x86)\WinMerge\WinMergeU.exe. «U» означает Unicode как в имени DLL, так и в исполняемом файле. Для WinMergeU.exe требуется только Merge7z920U.dll, но лучше иметь и то и другое, и не нужно заботиться.

+0

Быстрая перемотка вперед почти два года, до версии WinMerge и его 7-zip-плагинов нет никаких обновлений. Тем не менее, по крайней мере, в его хранилище кипит какая-то активность, и есть вилки (это под GPL). Я очень надеюсь, что он не умрет. – Palec

+0

Кстати, установщик не позволяет вам выбрать 'Merge7z920U.dll' без' Merge7z920.dll'. Кроме того, установка DLL освобождает вас от необходимости установки старой версии 32b 7-Zip. Однако установка последней версии 64b - хорошая идея, поскольку 7-Zip - лучший архив, доступный инструмент сжатия, и он имеет отличную интеграцию с оболочкой. – Palec