これは実際にはMavenが許可するものではありません。 Mavenの観点から、特定の名前を持つすべてのJARは、同じ名前を持つ他のすべてのJARとまったく同じである必要があります。
たとえば、私のプロジェクトがabc-1.0.jar
に依存しているとします。この依存関係は、アルファベットチームが1.0版のAPIを指定してabc
ライブラリを公開したために指定しました。私のインターネットが出てローカルのリポジトリに手作業でインストールするときに、私の隣人から通りの向こうの世界のどのリポジトリからでも、このjarファイルを入手できなければなりません。まったく同じファイルでなければなりません。それが同じファイルでない場合は、jarファイル内の.class
ファイルに、エラーなしでビルドを成功させるために必要なライブラリコードが含まれているという保証はありません。
本当にの場合は、理論的には可能です。分類子を持つすべての依存JARの
properties
セクションのPOMのXMLを解析し、そこから個々の特性を解析だけでなく、依存関係のjarファイルの名前
- 」:あなたがするスクリプトを書くことができますmanifest_injected "、ローカルリポジトリで見つけようとします。存在しない場合は、特定の依存関係を持つ空のMavenプロジェクトを生成し(
manifest_injected
クラシファイアなし)、mvn validate
を実行して依存関係がダウンロードされ、ローカルリポジトリに格納されていることを確認します。
- クローンすべてのJARファイルを開き、クローンを開き、以前に解析したプロパティで必要なマニフェスト注入を行い、注入されたjarをMavenリポジトリの適切な場所に保存します。
- スクリプトに渡されたMavenビルドを引数。
幸運!
あなたはなぜそれをしたいのですか?それらのアーティファクトは既に構築されています。つまり、不変であることを意味します。これらの成果物をmaven-dependency-pluginとmaven-assembly-pluginの組み合わせで変更することはできますが、本当に大きなpomファイルが生成されます。もう一方では、すでにビルドされた成果物をMavenのアイデアに反するものに変更しています。 – khmarbaise
@ Wimpie解決策を見つけましたか? –
'maven-assembly-plugin'では、マニフェストの設定を指定することができますが、現在[バグ](http://jira.codehaus.org/browse/MASSEMBLY-450)が存在するため、既存のマニフェストをマージすることはできませんマニフェストエントリが追加されます。私は同じことを試みて失敗したので、これを見つけました。 – user944849