Điều bạn muốn đạt được được gọi là uber jar. Mô-đun này phải có sự phụ thuộc của tất cả các mô-đun con khác mà bạn muốn gói vào một cái bình. Nếu bạn tạo một mô-đun con khác để tạo ra một tạo tác mong muốn, nó có thể được xây dựng trong lò phản ứng với tất cả các phụ thuộc của nó, nhưng nếu nó là một dự án riêng biệt, bạn phải cài đặt tất cả các phụ thuộc của uber jar.
| parent
| -- submodule1
...
| -- submoduleN
| -- uberjarSubmodule
Uber jar thể được thực hiện bằng cách sử dụng:
maven-shade-plugin - trong trường hợp của bạn, bạn cần phải nhớ để loại trừ dependecies bắc cầu từ các module của bạn
<project>
...
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-shade-plugin</artifactId>
<version>1.2.2</version>
<executions>
<execution>
<phase>package</phase>
<goals>
<goal>shade</goal>
</goals>
<configuration>
<artifactSet>
<excludes>
<exclude>classworlds:classworlds</exclude>
<exclude>junit:junit</exclude>
<exclude>jmock:jmock</exclude>
<exclude>xml-apis:xml-apis</exclude>
</excludes>
</artifactSet>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
</build>
...
</project>
maven-assembly-plugin - trong this câu hỏi bạn sẽ tìm thấy câu trả lời chi tiết
màu trông giống như một plugin tuyệt vời. – Clinton