すべてのモジュールのクラスを単一の jar にパッケージ化するには、次のことを行いました。
他のすべてのモジュールの内容を単一の jar にパックするためだけに使用される追加のモジュールを作成しました。これは通常、アセンブリ モジュールと呼ばれます。このモジュールを対象の jar ファイルと同じように呼び出してみてください。
この新しいモジュールの pom.xml に、maven-assemby-plugin を追加しました。このプラグインは、すべてのクラスをパッケージ化し、単一のファイルに配置します。追加の構成ファイルを使用します (ステップ 4.)。
<build>
<plugins>
<plugin>
<artifactId>maven-assembly-plugin</artifactId>
<version>2.4</version>
<executions>
<execution>
<id>go-framework-assemby</id>
<phase>package</phase><!-- create assembly in package phase (invoke 'single' goal on assemby plugin)-->
<goals>
<goal>single</goal>
</goals>
<configuration>
<descriptors>
<descriptor>src/main/assemble/framework_bin.xml</descriptor>
</descriptors>
<finalName>framework</finalName>
<appendAssemblyId>false</appendAssemblyId>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
</build>
3.この新しいモジュールのpom.xmlで、親pomを含む他のすべてのモジュールへの依存関係も追加しました。依存関係に含まれるモジュールのみがターゲット jar ファイルにパックされます。
<dependencies>
<dependency>
<groupId>${project.groupId}</groupId>
<artifactId>fwk-bam</artifactId>
<version>${project.version}</version>
</dependency>...
4.最後に、アセンブリモジュールにアセンブリ記述子を作成しました(ファイル:src/main/assemble/framework_bin.xml)
<assembly
xmlns="http://maven.apache.org/plugins/maven-assembly-plugin/assembly/1.1.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/plugins/maven-assembly-plugin/assembly/1.1.0 http://maven.apache.org/xsd/assembly-1.1.0.xsd">
<id>all-jar</id>
<formats>
<format>jar</format> <!-- the result is a jar file -->
</formats>
<includeBaseDirectory>false</includeBaseDirectory> <!-- strip the module prefixes -->
<dependencySets>
<dependencySet>
<unpack>true</unpack> <!-- unpack , then repack the jars -->
<useTransitiveDependencies>false</useTransitiveDependencies> <!-- do not pull in any transitive dependencies -->
</dependencySet>
</dependencySets>
</assembly>