Используйте Maven-тень-плагин, а не с следующей конфигурации Maven Ассамблеи:
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-shade-plugin</artifactId>
<version>2.1</version>
<configuration>
<finalName>${project.artifactId}-${project.version}-libs</finalName>
<artifactSet>
<excludes>
<exclude>${project.groupId}:${project.artifactId}</exclude>
</excludes>
</artifactSet>
</configuration>
<executions>
<execution>
<phase>package</phase>
<goals>
<goal>shade</goal>
</goals>
</execution>
</executions>
</plugin>
Хитрость заключается в том, чтобы определить конкретное окончательное имя. Это позволяет избежать замены баночки по умолчанию, которая упакована в maven-jar-plugin. По умолчанию используется значение $ {project.artifactId} - $ {project.version}. Так просто добавьте суффикс, как libs. Затем исключите сам артефакт, потому что классы не следует упаковывать дважды.
Билд приведет двух файлов .jar:
- $ {project.artifactId} - $ {project.version} .jar, содержащие классы и файлы проекта
- $ {project.artifactId} - $ {project.version} -libs.jar, содержащий содержимое всех зависимостей
Какая цель использовать вместо jar-with-dependencies? – user1052610
Существует только одно - сборка: одиночная. Однако, что делает эта цель, зависит от того, как вы настраиваете файл assembly.xml – user1717259