Чтобы создать затененный (uber) jar, вам просто нужно объявить плагин shade в вашем pom.xml
.
Что касается установки плагина shade, просто объявите его в разделе plugins
из ваших pom.xml
это все, что вам нужно сделать.Плагины Maven не устанавливаются вручную, но автоматически загружаются Maven (если они еще не загружены; просто как зависимости), хранятся в вашем локальном репозитории и используются всякий раз, когда они нужны проекту.
Что касается его использования, то многоеКак и другие плагины, объявите его в вашем pom.xml
, добавив элемент <plugin>
с вашими потребностями конфигурации.Этот плагин ничего не делает автоматически (некоторые делают, некоторые нет) - вы должны указать, какую «цель» выполнить (подумайте «метод класса») и в какой «фазе» (подумайте «шаг» процесса сборки)).Если у вас нет странных потребностей, задайте цель "shade" на этапе "package" (см. Ниже).
Дополнительные возможности конфигурации см. На странице использование оттенков и их примеры (особенно выбор содержимого для uber jar ).Вот простой пример, который, когда вы запускаете mvn package
, заменяет ваш оригинальный jar в каталоге target/
на uber jar.Он включает только зависимости времени выполнения, а не те, которые использовались во время тестирования (обратите внимание на элемент <scope>
зависимости junit, который не включен в uber jar).
<project>
<groupId>com.sample</groupId>
<artifactId>test</artifactId>
<version>1.0</version>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-shade-plugin</artifactId>
<version>1.5</version>
<executions>
<execution>
<phase>package</phase>
<goals>
<goal>shade</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>
<dependencies>
<dependency>
<groupId>com.sample</groupId>
<artifactId>test-core</artifactId>
<version>1.0</version>
</dependency>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>3.8.1</version>
<scope>test</scope>
</dependency>
</dependencies>
</project>