1

私は単純なMavenプロジェクト構造を持っています:

mainProject
|-- subProject1
|   |-- subSubProject
|-- subProject2

ポイントは、各サブプロジェクトで使用される依存関係を含む mainProject があることです (これらの依存関係は各サブプロジェクトに共通です) が、コンパイルおよびビルド時に最後にそれらを WAR ファイルに含めたくありません (スコープが提供されます)。 )。また、mainProject で既に宣言しているため、各サブプロジェクトで依存関係を宣言したくありません。

WAR ファイルには、ビルドされたファイルにすべてのサブプロジェクト ライブラリが含まれています。

ありがとう

4

2 に答える 2

1

私の意見では、この問題には 2 つの解決策があります。

1.) コンパイルするスコープを変更し、war ファイルのビルド中に、このように maven-war-plugin を使用して、war ファイルに不要なすべての jar を除外できます。

<build>
<plugins>
  <plugin>
    <artifactId>maven-war-plugin</artifactId>
    <version>2.4</version>
    <configuration>
      <packagingExcludes>WEB-INF/lib/xyz.jar</packagingExcludes>
    </configuration>
  </plugin>
</plugins>

2.) それらがサードパーティ固有の jar である場合は、それらをサーバーの lib ディレクトリに移動すると、実行時に Web コンテナーが必要なクラスを提供します。

于 2013-07-29T14:39:31.130 に答える
0

私は Maven の経験はあまりありませんが、使用したファイル poms に親 pom がリストされているのを見たことを覚えています。メイン プロジェクトの pom を親 pom として含め、サブプロジェクト固有の依存関係をそれぞれの pom に追加するようです。親pomで提供されるscope =は、共通の依存関係が最後にwarファイルになるのを防ぐと思います。

于 2013-07-29T15:16:32.253 に答える