0

jarに組み込まれる直前に、Mavenモジュールのクラスとリソースのタイムスタンプを設定したいと思います。maven-antrun-pluginを使用できると思いますが、もっと良いアイデアがあるかどうかを確認したいと思います。

誰かアイデアがありますか?

この機能が必要な理由から、詳細を追加します。

製品の新しいバージョンをビルドするときは、以前のビルドのすべてのアーティファクトを現在のアーティファクトと比較し、異なるものだけをパッケージ化するパッチインストールもビルドします。

jar(およびzipベースのアーカイブ)のコンテンツは同じである可能性がありますが、クラスとリソースのタイムスタンプはメタデータの一部であり、diffにjarが異なることを示します(実際にはコンテンツは同じです)。jarパッキングをハックして、すべてのクラスの時刻を一定に設定したいと思います(1/1/2000 00:00など)。

これが私の必要性を説明することを願っています。

4

2 に答える 2

1

さて、最善の解決策は、差分を計算するツールを適応させて、jarファイルをより深く見ることです;)

touchファイルの日付をリセットするタスクでantファイルを使用する以外に方法はありません。ファイルの日付を設定する既存のプラグインはありません。

独自のMavenプラグインを作成してコミュニティに貢献することもできますが、それはおそらく少しやり過ぎです...

こんにちはM。

于 2012-07-23T15:25:34.240 に答える
0

やろうと決心したことを共有したいだけです。

Mavenビルドには触れず、以前のようにjarをビルドさせます。

私がしたことは、jarを比較するためのスクリプトをビルドに実装することです。このスクリプトのロジックは単純です。

  • 引数を確認してください(jarが存在します)
  • jarを一時フォルダー(一意の名前)に抽出します
  • 両方のフォルダで差分を実行します
  • 掃除
  • 関連する終了コードで終了します(同じ場合は0、異なる場合は1)

これがお役に立てば幸いです。

于 2012-07-28T19:41:28.440 に答える