Моя проблема оказалась чем-то большим, чем просто рекурсивное расширение файла .ear (для этого я написал Java-класс - рекурсия сделала его простым.) Когда файлы .ear расширены, мне нужно проверить каталоги, чтобы проверить, любые изменения. Если что-то отличное от отметок времени изменилось, я знаю, что сборка создает другой двоичный файл.
Вторая проблема состоит в том, что наш процесс сборки генерирует сотни файлов .xml, а последующие сборки повторно генерируют эти файлы .xml с элементами в другом порядке. Я не уверен почему. Когда я раскрываю два файла .ear, создаваемых в параллельных сборках, без каких-либо изменений, различия в результирующих каталогах показывают сотни файлов .xml с различиями, даже если они функционально эквивалентны.
В дополнение к рекурсивному расширению файлов .ear мне нужно сделать diff и исключить файлы .xml в определенных каталогах. Я думал, что Cygwin diff сделает это, но ключ --exclude не распознает информацию о пути:
Cygwin diff не будет исключать файлы, если в шаблон включен каталог
Если я не найду решения для этого, я напишу еще один класс Java, чтобы пройти по всей структуре каталогов, выполнив один уровень различий в каждом каталоге и исключив файлы .xml в соответствующих каталогах.
У меня такое чувство, что я заново изобретаю колесо, но сейчас я не могу найти колесо.