コメントで述べたように、すべての依存関係を計算するのは maven の仕事です。すべての一般的な依存関係を使用してアーティファクトを作成する場合、どの依存関係がそこに属しているかを推測する必要もあります。
すべての戦争依存関係を提供に設定すると、耳のない別のマシンへの依存関係を使用して、1 つの戦争を展開する必要がある可能性もあります。
スキニー戦争を取得する唯一の正しい方法は、例からです:
http://maven.apache.org/plugins/maven-war-plugin/examples/skinny-wars.html
しかし、ここで興味深いのは、1 つ大きな問題があるということです。ショートカット (前述の痛みを完全に取り除きます) を使用して、WAR にどの依存関係があるかを maven に伝えます。
EAR-Module 内に移動し、すべての WAR 依存関係に対してタイプ pom を使用して、WAR に対する 2 番目の依存関係を宣言します。
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>com.foo</groupId>
<artifactId>skinny</artifactId>
<version>0.0.1-SNAPSHOT</version>
</parent>
<artifactId>ear</artifactId>
<packaging>ear</packaging>
<dependencies>
<dependency>
<groupId>com.foo</groupId>
<artifactId>war</artifactId>
<version>0.0.1-SNAPSHOT</version>
<type>war</type>
</dependency>
<dependency>
<groupId>com.foo</groupId>
<artifactId>war</artifactId>
<version>0.0.1-SNAPSHOT</version>
<type>pom</type>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-ear-plugin</artifactId>
<version>2.8</version>
<configuration>
<skinnyWars>true</skinnyWars>
<defaultLibBundleDir>lib</defaultLibBundleDir>
<modules>
<webModule>
<groupId>com.foo</groupId>
<artifactId>war</artifactId>
</webModule>
</modules>
</configuration>
</plugin>
</plugins>
</build>
これで、すべての WAR は独自の依存関係で個別にパッケージ化され、EAR は lib フォルダー内のスキニー WAR とすべての依存関係でパッケージ化されます。
アップデート:
JBoss EAP 6 のような厳密なコンテナー内のすべての依存関係 jar に ear/lib フォルダーを使用できるわけではないことに注意してください。 tomahawk、primefaces などの JSF コンポーネント ライブラリーは WEB-INF/lib フォルダーに存在する必要があります。
上記のソリューションでこれを実現する便利な方法は、次のように EARs pom.xml でコンポーネント ライブラリを除外することです。
...
<dependencies>
<dependency>
<groupId>com.foo</groupId>
<artifactId>war</artifactId>
<version>0.0.1-SNAPSHOT</version>
<type>war</type>
</dependency>
<dependency>
<groupId>com.foo</groupId>
<artifactId>war</artifactId>
<version>0.0.1-SNAPSHOT</version>
<type>pom</type>
<exclusions>
<exclusion>
<groupId>org.primefaces</groupId>
<artifactId>primefaces</artifactId>
<exclusion>
</exclusions>
</dependency>
</dependencies>
...
これで、WAR 内の WEB-INF/lib に配置されるコンポーネント ライブラリを除いて、WAR のすべての依存関係が ear/lib に配置されます。