Для этого вы можете использовать стандарт maven-jar-plugin
:
<plugin>
<artifactId>maven-jar-plugin</artifactId>
<executions>
<execution>
<id>dao</id>
<phase>package</phase>
<goals>
<goal>jar</goal>
</goals>
<configuration>
<archive>
<index>true</index>
<manifest>
<addDefaultImplementationEntries>true</addDefaultImplementationEntries>
</manifest>
</archive>
<classifier>dao</classifier>
<includes>
<include>org/xxx/dao/**/*</include>
</includes>
</configuration>
</execution>
<execution>
<id>service</id>
<phase>package</phase>
<goals>
<goal>jar</goal>
</goals>
<configuration>
<archive>
<index>true</index>
<manifest>
<addDefaultImplementationEntries>true</addDefaultImplementationEntries>
</manifest>
</archive>
<classifier>service</classifier>
<includes>
<include>org/xxx/service/**/*</include>
</includes>
</configuration>
</execution>
</executions>
</plugin>
Это дает вам один JAR со всем, а затем несколько JAR только с выбранным контентом, который вы можете выбрать с помощью классификатора в ваших POM Maven..
Если вы хотите опустить JAR по умолчанию (который содержит все), то вы заменяете один <id>
на <id>default-jar</id>
и добавляете элемент <excludes>
, потому что JAR по умолчанию включает в себя все, поэтому вы должныизбавиться от всего, что вам не нужно.