Maven SNAPSHOT MANIFESTファイルのMavenアセンブリを使用したjarファイルの名前が一致しない
2つのMaven 3プロジェクトビルド。
ビルド1には、Nexusに展開されるスナップショットジャーがあります。
ビルド2は、mvn clean package assembly:single
コマンドを使用してパッケージ化され、圧縮された1.0.0-SNAPSHOTのようなスナップショットに依存します。
我々はに実行する問題:アセンブリが作成されている時折 、JARのMANIFESTファイルが時々some.jar.1.0.0-SNAPSHOTを言うだろうし、時にはそれがsome.jarを言うだろう。 1.0.0-datetime stamp、クラス定義されていないエラーが発生します。
マニフェストファイルでこの名前の問題を回避する方法はありますか?
--edit--
さらなる研究は、以下のことを発見しました:
「スナップショットがレポから解決した場合、それは原子炉や地元から来たならば、それは 、タイムスタンプされますレポは、それは-snapshotになります。 プラグインはMavenの解決ロジックを呼び出すので、これは、コアのmaven 動作です。」
これは正確な私ですその中に入っているssue。 2番目のビルドマニフェストファイルは常に./lib/Framework-1.0.0-SNAPSHOT.jarのエントリを持ちます。実際のjarファイル名は./lib/Framework-1.0.0-SNAPSHOT.jarの間で変更されます。 ./lib/Framework-1.0.0-timestamp.jar上記の引用に基づいて。
[This(http://stackoverflow.com/questions/2516860/maven-how-to-create-assembly-with-snapshot-artifacts-without-timestamps-file-na)が役立つかもしれません、outputfilenamemappingの設定について説明していますスナップショットでファイル名を一貫させる。 – prunge
SNAPSHOTのマニフェストはどのように生成され、どのようにこの情報を生成するように構成されていますか?さらにmvn cleanパッケージアセンブリ:なぜなら、単にmvn cleanパッケージ原因パッケージが呼び出されるのではなく、呼び出された単一パッケージがアセンブリされたアセンブリプラグインを呼び出すからです。 – khmarbaise
SNAPSHOT自体のマニフェストはありません。問題のマニフェストは2番目のビルドにあります。そして、協力者の助けを借りて、私たちはこれを見つけました 'スナップショットがレポから解決された場合、原子炉またはローカルレポから来たスナップショットはタイムスタンプされ、それから-SNAPSHOTになります。プラグインはmaven解決論理を呼び出すので、これはコア動作です。 これは私が抱えている厳しい問題です。私はこれを回避する必要があります。 package assembly:singleがなぜ呼び出されているのかは、私たちが全体としてmavenを初めて使ったからです。 – Thaldin