シナリオは次のとおりです。
2 つの Maven 3 プロジェクト ビルド。
ビルド 1 には、Nexus にデプロイされるスナップショット jar があります。
ビルド 2 には、 1.0.0-SNAPSHOTのように参照されるスナップショットへの依存関係があり、コマンドを使用してパッケージ化および圧縮されmvn clean package assembly:single
ます。
私たちが遭遇した問題: 時折、アセンブリが作成されているときに、jar の MANIFEST ファイルがsome.jar.1.0.0-SNAPSHOTと表示されたり、 some.jar.1.0.0-datetime stamp と表示されたりすることがあります。クラスが定義されていないエラーが発生します。
マニフェスト ファイルでこの命名の問題を回避する方法はありますか?
- 編集 -
さらなる研究により、次のことが発見されました。
「スナップショットがリポジトリから解決された場合、タイムスタンプが付けられます。リアクターまたはローカル リポジトリから取得された場合は、-SNAPSHOT になります。プラグインは Maven 解決ロジックを呼び出すため、これは Maven のコア動作です。」
これはまさに直面している問題です。2 番目のビルド マニフェスト ファイルには常に./lib/Framework-1.0.0-SNAPSHOT.jarのエントリがあり、実際の jar ファイル名は./lib/Framework-1.0.0-SNAPSHOT.jarと./lib/の間で変化します。上記の引用に基づくFramework-1.0.0-timestamp.jar 。