-1

私のアプリケーション構造:JARとしてパッケージ化されている私のプロジェクト(AAAとしましょう)。プロジェクト AAA は、EAR である CCC の Web プロジェクト BBB および BBB インターン モジュールに依存して追加されます。

AAA プロジェクトの Maven ビルドを実行しているときに、Maven はパッケージングの一部として依存する jar を含めず、最終的に ear パッケージをデプロイするとデプロイが失敗します。

質問

1) 重複を避けるために親プロジェクトと子プロジェクトの間で共通ライブラリを共有する方法 2) Maven ビルド中に個々のプロジェクト ライブラリ (これは一般的ではありません) を含める方法

4

1 に答える 1

1

Maven のデフォルトでは、依存する jar ではなく、実際のモジュールにあるクラス ファイルのみをパッケージ化します。これは、一種の ueber-jar を作成したい場合にmaven-shade-pluginを使用することで実現できますが、これは通常の使用例ではありません。ear を作成しようとしている場合、すべての jar がパッケージ化されます。それ以外の場合は、構成が正しくないか、maven-ear-plugin を使用していないか、パッケージが「ear」として定義されていません。

ライブラリを共有したい場合は、マルチモジュール ビルド内で共通と呼びましょう。最も簡単な解決策は、次のような構造を作成することです。

  +-- root (pom.xml)
       +-- module-1 (pom.xml)
       +-- module-2 (pom.xml)
       +-- common (pom.xml)

たとえば、module-1 で共通モジュールを依存関係として定義するか、共通モジュールを依存関係として使用する他のモジュールで定義します。このを見ることができます。

于 2012-04-17T17:45:03.630 に答える