ОБНОВЛЕНИЕ: Вам необходимо указать атрибут Main-Class в Manifest.mf в вашем банке. Для этого см. Пример «Плагин Shade, где в MANIFEST.MF добавлен основной класс».
-
Да, вы должны встроить код плагина в ваш файл pom, как показано ниже
<project>
<!-- Other tags -->
---
<build>
<plugins>
<plugin>
---
</plugin>
</plugins>
</build>`
</project>
Возможно, вы включили <plugin>
в качестве прямого потомка <project>
в файл pom. Это не работает.
Обычный способ построения maven проектов с mvn install
(или mvn package
) создаст затененный jar, если указана конфигурация плагина shade. Итак, будет две банки; оригинальная банка и баночка убера.
исключить:
Как правило, uber jar будет включать в себя все классы из списка dependencies
jar в pom. excludes
указывает набор файлов jar, которые НЕ должны находиться в затененном jar. Если вы внимательнее посмотрите на пример, он исключает junit: junit jar, что означает, что классы в junit не будут в вашем uber jar.