問題タブ [maven-assembly-plugin]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
maven-2 - クリーン インストールで複数の jar ファイルを maven に公開する方法
1 つの jar から複数の jar を作成するために maven アセンブリ プラグインを使用しましたが、問題は、これらの jar をローカル リポジトリに公開する必要があることです。これは、他の maven jar がビルドされたときに自分で公開するのと同じように、maven クリーン インストールを行う方法です。これができる
ここに私のpomファイルがあります
ここに私のアセンブリファイルがあります
java - Maven - 集約のための「すべて」または「親」プロジェクト?
教育目的で、プロジェクトのレイアウトを次のように設定しました (Eclipse をより適切に使用するためにフラットにします)。
親には、core、opt、および all を含む集約プロジェクトが含まれています。Core は、アプリケーションの必須部分を実装します。Optはオプションパーツです。すべては、core と opt を結合することになっており、これら 2 つのモジュールが依存関係としてリストされています。
現在、次のアーティファクトを作成しようとしています。
- 製品コア.jar
- 製品コア-src.jar
- product-core-with-dependencies.jar
- 製品-opt.jar
- 製品-opt-src.jar
- product-opt-with-dependencies.jar
- 製品-all.jar
- 製品-all-src.jar
- product-all-with-dependencies.jar
それらのほとんどは、作成がかなり簡単です。ただし、アーティファクトの集約には問題があります。すべての非推移的な deps のソースをダウンロードする「all」モジュールのカスタム アセンブリ記述子を使用して、product-all-src.jar を作成することができました。これは正常に動作します。この手法により、product-all-with-dependencies.jar を作成することもできます。
しかし最近、ソース プラグインで source:aggregate ゴールを使用して、集約プロジェクト全体のソースを集約できることがわかりました。これは、親プロジェクトの使用によって集約される javadoc プラグインにも当てはまります。
したがって、「すべて」モジュールのアプローチと「すべて」モジュールを捨てて、すべての集約に「親」モジュールを使用することの間で迷っています。「親」で生成された集約アーティファクトと「すべて」で生成された他のアーティファクトがあるのは不潔に感じます。親プロジェクトで 'product-all' jar を作成する方法、または 'all' プロジェクトで javadoc を集約する方法はありますか? それとも、両方を維持する必要がありますか?
ありがとう
maven-2 - 依存関係のあるjarを作成するためのカスタムアセンブリ記述子
Mavenで作成されたプロジェクトから.jarアプリケーションを生成したいと思います。
私はEclipseで作業しており、次のように作成しました:run as / Maven assembly:assembly
これはエラーメッセージです:
これは私のassamble.xml
muyプロジェクトの依存関係を追加するために何か他のものを含める必要があると思いますが、それを行う方法がわかりません!! 提案??
更新:私のassembly.xmlの下
maven-assembly-plugin構成はどこにありますか?
私はあなたが私に言った2つのオプションを試しました:
- 事前定義されたassembly.xmlを使用する
- プラグインを挿入する
私は同じ結果を出しました:s
maven-2 - に切り替えてから、アセンブリ内の奇妙なファイルユニックス
このオプション<lineEnding>unix</lineEnding>
をファイルセットと Maven アセンブリ プラグイン構成のファイルに挿入したため、奇妙なファイルが tar に配置されます。
それらは次のようになります。
なぜこれが起こるのか知っていますか?
maven-2 - Maven2アセンブリプラグイン-tar.gzのルート名を変更します
アセンブリプラグインを使用してパッケージをtar.gzで圧縮しています。ルート出力ディレクトリを${project.name}-{$project.version}から${project.name}に変更しようとしていますが、そのための構成オプションがどこにも見つからないようです。これが可能かどうか誰か知っていますか?
maven-2 - 依存関係スコープの「コンパイル」はアセンブリに含まれていません
プロジェクトのPOMで次の依存関係を指定しています。
私のプロジェクト自体は、別のPOMの子である必要があります。そしてその中で、以下が定義されています:
jbossall-client.jar
プログラムをアセンブリすると、アセンブリに含まれていないため、親POMの「提供された」スコープがプロジェクトのスコープをオーバーライドしているように見えます。私には非論理的に思えますが、おそらくこの機能がここで有効になっているのでしょう。
親POMに触れることなく、依存関係をアセンブリに含める方法を知っていますか?
編集:(mvn dependency-tree
更新されました!)
の出力:
編集2:ここで私のアセンブリXMLの依存部分。
編集3:取得したアセンブリのlibフォルダー内のファイルは次のとおりです。
編集4:この質問への回答については、正解の最後のコメントを参照してください。
maven-2 - Maven、アセンブリ プラグイン、マルチモジュール プロジェクト、およびモジュールの依存関係
主要な製品が WAR ファイルであるマルチモジュール Maven プロジェクトを構築しており、そのファイルを関連するリリース関連のアーティファクト (README、リリース ノート、ライセンス ファイルなど) と一緒に ZIP にアセンブルしようとしています。分布。しかし、配布ファイルをビルドしようとすると失敗します。私は何を間違っていますか?モジュールが配布ファイルのビルドを要求さfoo-bar.1.0.war
れた時点でアーティファクトが存在することを既に確認していることに注意してください。のPOMfoo-distribution
にすべてを入れてもうまくいかないことは承知しています。foo
(回避策があります。相対パスを使用して、foo-distribution
モジュール ルートを基準にして配布されたファイルの場所を直接指すことができます。これは、コード臭がするので、私が好む解決策ではありません。)
また、私は常にルート プロジェクトからビルドしassembly:single
、ディストリビューション ビルダーで使用していることにも注意してください (Maven ドキュメントで推奨されているように)。
プロジェクトのレイアウト
foo
とパッケージングがあり、パッケージングがfoo-distribution
あります。(実際のコードには他のモジュールがありますが、それらもモジュールの前に正しく構築されています。)pom
foo-bar
war
foo-distribution
フー・ポム
foo-distribution POM
dist.xml
回避策 dist.xml
これが、上で述べた回避策です。それは私が望むアーティファクトを正確に生成します。
maven-2 - Maven で tar.gz アーカイブを作成する
src/main ディレクトリの下に output というサブディレクトリがある Maven プロジェクトがあります。このフォルダーは、tar.gz にパッケージ化する必要があります。次のようにアセンブリ プラグインを使用する場合:
pom.xml から:
assembly.xml:
私の問題は、出力ディレクトリとそのすべてのコンテンツを取得するために抽出するときを意味する、tar ユーティリティ自体を実行するときに結果が得られるようにしようとしていることです。私が得るのは、すべてのプロジェクト パス (name/src/main/output) でラップされた出力フォルダーです。
java - Mavenアセンブリプラグインによってアップロードされた参照アーティファクト
デプロイプラグインを介してローカルのMavenリポジトリにアップロードされる個々のjarファイルを作成するようにMavenアセンブリプラグインを構成しました。
ただし、他のプロジェクト内のそれらのjarファイル(アセンブリプラグインによって作成されたもの)をmaven依存関係として参照する必要があります。それをどのように達成できるかについてのアイデアをいただければ幸いです。
更新例:
これは、Mavenアセンブリプラグインによって3つの異なるjarファイルに分割され、次のようにローカルリポジトリに公開されます。
独自のpomファイルがなくても、client-authentication.jarを別のプロジェクトの依存関係として参照するにはどうすればよいですか?
maven-2 - アセンブリを構築するときに多くの「META-INF/がすでに追加されています。スキップします」という警告
アセンブリプラグインを使用して依存関係のあるjarを作成すると、次のようなメッセージが多数表示されます。
Mavenが警告しているようですが、作成するjarにMETA-INFが既に含まれているため、含まれる依存jarファイルのMETA-INFがtoに含まれていません。 -作成されるjar。まあ、これはまさに私が望んでいることであり、私はそれらのメッセージを古くして取り除きたいと思っています。これを達成する方法はありますか?
よろしく、マーティン。