9

ビルド プロセスを変更していて、2 つの .ear ファイルの内容を完全に比較する必要があります。これは、.ear 内の各アーカイブを再帰的に比較することを意味します。これらの .ear ファイルには、アーカイブを含むアーカイブがあります。

Beyond Compare と Archive Analyzer を見てきましたが、一度に 1 つのレベルしか実行できません。各アーカイブに手動でドリルダウンする必要があります。より自動化されたものを探しています。

Eclipse と UltraCompare は、2 つの .ears のバイナリ比較を行いますが、これは私が望んでいるものではありません。

そのようなツールは存在しますか?

4

3 に答える 3

5

zipdiffは、非常に優れたオープン ソース ソリューションを提供します。

于 2012-11-08T10:22:15.637 に答える
4

私の問題は、単に .ear ファイルを再帰的に展開するだけではないことが判明しました (そのための Java クラスを作成しました。再帰によって簡単になりました)。.ear ファイルが展開されたら、ディレクトリを比較して変更を確認する必要があります。タイムスタンプ以外のものが変更された場合、ビルドが別のバイナリを生成していることがわかります。

2 つ目の問題は、ビルド プロセスで何百もの .xml ファイルが生成され、その後のビルドでそれらの .xml ファイルが要素の順序が異なる状態で再生成されることです。理由はわかりません。バックツーバック ビルドで作成された 2 つの .ear ファイルを何も変更せずに展開すると、結果のディレクトリの diff には、機能的には同等であるにもかかわらず、数百の .xml ファイルが表示されます。

.ear ファイルを再帰的に展開するだけでなく、特定のディレクトリ内の .xml ファイルを比較して除外する必要があります。Cygwin diff がこれを行うと思っていましたが、 --exclude スイッチはパス情報を認識しません:

ディレクトリがパターンに含まれている場合、Cygwin diff はファイルを除外しません

これに対する解決策が見つからない場合は、別の Java クラスを作成して、ディレクトリ構造全体をステップ実行し、各ディレクトリで単一レベルの差分を実行し、適切なディレクトリの .xml ファイルを除外します。

車輪を再発明しているような気がしますが、今は車輪が見つかりません。

于 2011-01-06T21:50:09.620 に答える
1

Beyond Compare でSession Settingsダイアログに入り、HandlingタブにArchive Handlingオプションがあります。BC に設定されている場合、As folders alwaysアーカイブはフォルダーと同じように扱われるため、完全に再帰的です。

于 2011-01-03T20:09:12.657 に答える