2

マルチモジュールのmavenプロジェクトがあります。親POMと個々のモジュールのpomは正常に動作しています(各モジュールのコードは依存関係の問題なしに正常に実行され、mvn:package目標は警告/エラーなしで実行されるため)。ここで、モジュールごとに jar を作成する必要がありました。

依存関係のあるプロジェクト構造はおおよそ次のようになります

ProjectABC
|
|--ModuleA
|     |-Log4J
|     |-Guava
|     |-pom.xml  
|
|--ModuleB
|     |-ModuleA
|     |-Commons
|     |-pom.xml         
|
|
|--MoudleC
|     |-ModuleB
|  
|-pom.xml

このMavenマルチモジュールプロジェクトに従い ました-すべての「パッケージ」JARSをサブモジュールからparent/target/にコピーします

また、すべてのサブモジュールの jar をmouduleJarsフォルダーに入れることができますが、モジュールの依存関係がフォルダーにコピーされないため、jar を実行できませんmouduleJars。たとえば、 I don't get log4j.jar in my folder にmodule A依存している場合、log4J は moduleA.jar 内にパッケージ化されていませんLog4JmouduleJars

質問

マルチモジュール プロジェクトで自己完結型 (スタンドアロン モジュール jar) を作成する方法。または、libフォルダー内のすべての依存関係を取得する方法。

一時的な回避策

現在、IntelliJ IDEA ide を使用して、すべての依存関係 (log4J、Guvava など) を lib フォルダーにコピーします。

フォルダーをクラスパスにmoduleA.jar追加して生成されたmavenを実行します。libこれは問題なく動作しますが、私はこの手動のアプローチが好きではなく、maven に処理してもらいたいと考えています。

重複しているか、すでに回答済みであり、反対票を投じていると思う人向け

私の質問は、 Maven Assembly Submodules Multimodules Or thisを求めているのではありません

Maven : マルチモジュール プロジェクトとバージョン管理

私はすでに1日以上を費やして、これをうまく機能させようとしましたがmaven-assembly-plugin、成功しませんでした。

詳細が必要な場合はお知らせください。

4

2 に答える 2

0

AppAssembler maven プラグインでこれを行いました。必要なすべての依存関係を自動コピーし、メイン クラスのショートカットを作成します。私が試した他のプラグインよりもはるかに簡単です。

uber-jar アプリケーションでは、maven-shade-pluginを使用して jar を 1 つにマージし、プロガードを縮小して使用しますが、AppAssembler の方がはるかに高速で安定して使用できます。

于 2013-10-11T22:01:33.353 に答える