Если вы хотите создать «uber-jar», то есть jar, содержащий (объединяющий) все классы из ваших модулей и их зависимостей (jar, от которых они зависят), одним из способов является использование плагина Maven Shade.
Добавьте еще один модуль в родительский pom, назовите его, например."uberjar", и сделать его зависимым от firstModule
, secondModule
, thirdModule
.Добавьте конфигурацию для плагина Shade в файл pom.xml для этого модуля;затем запуск mvn package
приведет к созданию uber jar.
Модуль uberjar можно настроить, как показано в следующем примере:
<project ...>
<parent>
<groupId>myproject</groupId>
<artifactId>parent</artifactId>
<version>0.0.1-SNAPSHOT</version>
</parent>
<artifactId>uberjar</artifactId>
<dependencies>
<dependency>
<groupId>myproject</groupId>
<artifactId>mod1</artifactId>
<version>0.0.1-SNAPSHOT</version>
</dependency>
<dependency>
<groupId>myproject</groupId>
<artifactId>mod2</artifactId>
<version>0.0.1-SNAPSHOT</version>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-shade-plugin</artifactId>
<version>3.2.0</version>
<executions>
<execution>
<phase>package</phase>
<goals>
<goal>shade</goal>
</goals>
<configuration>
<transformers>
<transformer implementation="org.apache.maven.plugins.shade.resource.ManifestResourceTransformer">
<mainClass>myModule.MyMainClass</mainClass>
</transformer>
</transformers>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
</build>
</project>