問題タブ [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 - Maven アセンブリは親の依存関係を無視します
私のアセンブリ記述子は、依存関係が pom ファイルに直接含まれている場合、インクルードとエクスクルードを正しく適用します。
ただし、依存関係を親の pom ファイルに配置すると、 assembly:directory ゴールは、インクルードとエクスクルードがトリガーされていないことを報告します。
maven-assembly-plugin が親の依存関係を無視する理由を知っていますか? どうすれば修正できますか?
Maven 記述子とアセンブリ記述子は次のとおりです。
アセンブリ記述子:
子 POM アセンブリ プラグインの定義:
親 POM の依存関係:
ビルド レポートの警告:
java - 依存関係のあるMavenjarの名前を変更することは可能ですか?
私は現在、依存関係のあるjarアセンブリを使用してそのようなjarを作成しています。しかし、私の瓶の名前は少し長いです。
このjarはAS400のRPGプログラムで使用されているので、それらの開発者の生活を少し楽にするために、このjarを短くしたいと思います。しかし、手作業以外では、通常のからjarの名前を変更する方法が見つかりませんでしたproject-name-version-classifier-jar-with-dependencies.jar
。のようなものが欲しいのですがproject-name-version-classifier-full.jar
基本的に依存関係のあるjarアセンブリ記述子をコピーして完全に呼び出すことなく、これを行う方法はありますか?
さらに、クラスパスをアセンブルせずにjarをリポジトリに保存し続けたいと思います。
2つのアーティファクトが必要です。ビルドの対象となる領域を保持している分類子が入ったjarファイル。リージョンも含むすべての依存関係を持つjar。
project-name-version-region-full.jar
project-name-version-region.jar
リポジトリに保存する必要があります。最初の例では、分類子はリージョンフルであり、2番目の例ではリージョンです。後者は機能しています。
maven-2 - Maven - 依存関係を解凍せずに依存ライブラリをjarに含めますか?
アンパックされた依存 jarを含むクライアント jar を構築しようとしています。マニフェストにはclass-path
、依存する jar へのエントリが必要です。以下のスニペットは機能しますが、jar はアンパックされています。jar がアンパックされないようにするにはどうすればよいでしょうか?
java - 特定のファイル用のmaven-assembly-plugin
私はマルチモジュールプロジェクトを持っています。これは親pomです。
プロジェクトatoms-persitenceには、次のファイルがあります。
com.atoms.vo。*
com.atoms.service。*
com.atoms.dao。*
そして、原子の中で-私が持っているreglas:
com.atoms.rules。*
アセンブリプラグインを使用して、次のクラスのみを含むjarを作成するにはどうすればよいですか。
com.atoms.vo。*およびcom.atoms.rules。*?
maven-2 - Mavenアセンブリと依存関係プラグインの使用に関する問題
次のようなWebモジュールを組み立てたいと思います。
src/main/java
(いくつかの一般的なユーティリティ、アクションなどがあります)src/main/resources
(いくつかのSpring Beanファイル、構成などがあります)src/main/webapp
(いくつかのjsp、css、画像などがあります)
maven
次に、このアセンブルされたモジュールを、通常の2つのWebアプリケーションのように見える別のWebアプリケーションの依存関係として使用したいと思います。
src/main/java
(いくつかのアクションなどがあります)src/main/resources
(いくつかのSpring Beanファイル、構成などがあります)src/main/webapp
(いくつかのjsp、css、画像などとweb.xmlがあります)
基本的にmvn clean install
、メインのWebアプリケーションを構築する際に、共通のWebモジュールを最初にアセンブルし、次にメインのWebアプリケーションとマージしてから、最終的なセットアップ(アセンブルとマージ後)を構築し、.warを出力する必要があります。それの。
Mavenアセンブリと依存関係プラグインを使用しようとしましたが、モジュールをアセンブルできましたが、モジュールを正常にマージできませんでした。誰かがこれを行う方法についてのアイデアを持っていますか?
maven-2 - 依存関係のあるMaven 2アセンブリ:スコープ「システム」の下のjarは含まれていません
私は maven-assembly プラグインを使用して、次のような依存関係を含むアプリケーションの jar を作成しています。
(質問に関係のない他のものは省略しました)
lib
これまでのところ、すべての依存関係を持つディレクトリが作成されるため、これはうまく機能しています。ただし、スコープが である新しい依存関係を最近追加しましたが、それは出力ディレクトリsystem
にコピーされません。lib
ここで何か基本的なことが欠けているに違いないので、助けを求めます。
追加した依存関係は次のとおりです。
この依存関係を含めることができた唯一の方法は、アセンブリ要素に次を追加することでした。
ただし、これにより、このjarの名前が変更されるたびに、pomとアセンブリファイルを変更する必要があります。また、それは間違っているようです。
私はで試してみまし<scope>runtime</scope>
たが、運がありませんでしたdependencySets
。<include>sourceforge.jchart2d:jchart2d</include>
system
では、maven 2 のアセンブリ ファイルにスコープ付きの jar をどのように含めますか?
どうもありがとう
deployment - maven-release-pluginを使用したアセンブリパッケージのデプロイ
Hudsonとmaven-release-pluginを使用してリリースビルドを実行します。これで、必要なすべてのコンポーネントをまとめて、目的のディレクトリ構造を持つ.tar.gzパッケージにパッケージ化するアセンブリを含むプロジェクトができました。
今、私はrelease-pluginを取得して、release:performの目標の間にこのパッケージをMavenリポジトリにデプロイしようとしていますが、標準のもの(ソース、javadoc、POM)のみがデプロイされています。
アセンブリの目標をMavenパッケージフェーズにバインドしました。リリース中に.tar.gzがビルドされますが、リポジトリにはアップロードされません。私がここで間違っていることのヒントはありますか?
アセンブリプラグインの構成は次のとおりです。
リリースをビルドするために実行するコマンドは
maven-2 - 依存関係のあるjarを含むzipディストリビューションを構築することは可能ですか?
uberjarと一連のスクリプトを含むプロジェクトのバイナリzipディストリビューションを作成したいと思います。現在、私は2つの記述子を使用しています。1つはuber jar用で、もう1つはuberjar+追加のスクリプトとドキュメントを含むzip用です。問題は、これらの両方がMavenリポジトリにデプロイされることですが、実際にはuberjarは必要なく、ディストリビューションのみが必要です。次のいずれかにする方法はありますか?
- 1つの記述子を使用してディストリビューションを作成するか、
- uberjarが展開されるのを避けますか?
編集:パート2に関するこの質問を見つけましたが、おそらくそれを行うためのより簡単な方法があります...
maven-2 - 異なる/フィルターされたクラスで複数のjarを生成するためのMavenのベストプラクティス?
さまざまなプロジェクトで使用する Java ユーティリティ ライブラリ (Apache Commons と同様) を開発しました。ファット クライアントに加えて、モバイル クライアント (J9 Foundation プロファイルの PDA) にも使用します。単一のプロジェクトとして開始されたライブラリは、やがて複数のパッケージに広がりました。その結果、すべてのプロジェクトで実際には必要とされない多くの機能が必要になります。
このライブラリは一部のモバイル/PDA プロジェクト内でも使用されるため、使用されているクラスだけを収集して実際の特殊な jar を生成する方法が必要です。
現在、このライブラリを使用しているプロジェクトには、(ユーティリティ プロジェクトから) 特殊な jar ファイル (例: my-util-1.0-pda.jar、my-util-1.0-rcp.jar) を生成する Ant jar タスクがあります。 jar タスクの組み込み/除外機能を使用します。これは、モバイル プロジェクト用に生成された jar ファイルのサイズの制約により、主に必要になります。
今Mavenに移行していますが、似たようなものに到達するためのベストプラクティスがあるかどうか疑問に思っています. 次のシナリオを検討します。
[1] - メインの jar アーティファクト ( my-lib-1.0.jar ) に加えて、分類子 (例: my-lib-1.0-pda.jar ) を使用して Maven Jar プラグインを使用して、my-libプロジェクト内で個別の/特殊化されたアーティファクトを生成します。または Maven アセンブリ プラグインのフィルタリング/インクルード。このアプローチは、ライブラリの消費者の要求 (フィルター) でライブラリを汚染するため、あまり快適ではありません。
[2] - 「my-lib」を「ラップ」し、フィルタリングされた jar アーティファクト (例: my-lib-wrapper-pda-1.0 ...など)を生成する、すべての特殊なクライアント/プロジェクト用の追加の Maven プロジェクトを作成します。 . その結果、これらのラッパー プロジェクトには (フィルター処理されたアーティファクトを生成するための) フィルター処理が含まれ、"my-lib" プロジェクトのみに依存し、クライアント プロジェクトはmy-ではなくmy-lib-wrapper-xxx-1.0に依存します。 lib-1.0. このアプローチは問題があるように見えるかもしれません. 「my-util」ライブラリのクラス (「my-pda-app」プロジェクトには「my-lib-wrapper-for-my-pda-app」プロジェクト/依存関係が必要です)。
[3] - ライブラリを使用するすべてのクライアント プロジェクト (例: my-pda-app ) で、特殊な Maven プラグインをいくつか追加して、(最終的なアーティファクト/パッケージを生成するときに) 不要なクラス (例: maven-assembly -plugin、maven-jar-plugin、proguard-maven-plugin)。
「Maven の方法」でこの種の問題を解決するためのベスト プラクティスは何ですか?
maven-2 - CI/Hudson をサポートする複数の環境 [prod、test、dev] のアーティファクトを生成するための Maven のベスト プラクティスは?
複数の環境 ( prod、test、dev )にデプロイする必要があるプロジェクトがあります。主な違いは、主に構成プロパティ/ファイルにあります。
私の考えは、プロファイルとオーバーレイを使用して、特殊な出力をコピー/構成することでした。しかし、特殊な分類子 (例: "my-app-1.0-prod.zip/jar"、"my-app-1.0-dev.zip/jar") を使用して複数のアーティファクトを生成する必要がある場合、または複数のプロジェクトを作成し、環境ごとに 1 つのプロジェクトを作成します。
環境ごとに複数のアーティファクトを生成するには、maven-assembly-plugin を使用する必要がありますか? とにかく、一度にすべてを生成する必要があるので、プロファイルが適合しないように継ぎ目があります...まだ困惑しています:(
ヒント/例/リンクは大歓迎です。
副次的な問題として、CI Hudson/Bamboo でこれを達成して、すべての環境でこれらの生成されたアーティファクトを適切なサーバーに生成してデプロイする方法も知りたいです (例: SCP Hudson プラグインを使用) ?