Комплексное руководство: создание исполняемого файла JAR с зависимостями для вашего приложения Spring Boot

При создании приложения Spring Boot вы можете захотеть упаковать его как исполняемый файл JAR, включающий все его зависимости. Это гарантирует, что ваше приложение можно будет легко развернуть и запустить в любой среде без необходимости дополнительной настройки или установки. В этой статье мы рассмотрим несколько методов создания исполняемого файла JAR с зависимостями для вашего приложения Spring Boot, а также примеры кода для каждого подхода.

Метод 1: упаковка с помощью Maven
Maven — это популярный инструмент автоматизации сборки, который предлагает несколько подключаемых модулей для упаковки приложений Spring Boot. Одним из таких плагинов является плагин Spring Boot Maven. Чтобы создать исполняемый JAR-файл с зависимостями с помощью Maven, выполните следующие действия:

Шаг 1. Добавьте плагин Spring Boot Maven в файл pom.xmlвашего проекта:

<build>
    <plugins>
        <plugin>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-maven-plugin</artifactId>
        </plugin>
    </plugins>
</build>

Шаг 2. Запустите команду пакета Maven, чтобы создать исполняемый файл JAR:

mvn package

Метод 2: упаковка с помощью Gradle
Если вы предпочитаете использовать Gradle в качестве инструмента сборки, вы можете добиться того же результата, используя систему сборки Gradle. Gradle предоставляет плагины, такие как Spring Boot Gradle Plugin, для создания исполняемых файлов JAR с зависимостями. Вот как это можно сделать:

Шаг 1. Примените плагин Spring Boot Gradle в файле build.gradleвашего проекта:

plugins {
    id 'org.springframework.boot' version '2.5.4'
    // Other plugins...
}
// ...
springBoot {
    mainClassName = 'com.example.YourApplication' // Replace with your main class
}

Шаг 2. Запустите команду сборки Gradle, чтобы создать исполняемый файл JAR:

./gradlew build

Метод 3: создание Fat JAR
Другой подход к включению зависимостей в исполняемый JAR — создание Fat JAR, также известного как Uber JAR или Shadow JAR. Fat JAR содержит все необходимые классы и ресурсы вашего проекта и его зависимостей. Вот пример создания Fat JAR с использованием плагина Maven Shade:

Шаг 1. Добавьте плагин Maven Shade в файл pom.xmlвашего проекта:

<build>
    <plugins>
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-shade-plugin</artifactId>
            <version>3.2.4</version>
            <executions>
                <execution>
                    <phase>package</phase>
                    <goals>
                        <goal>shade</goal>
                    </goals>
                </execution>
            </executions>
        </plugin>
    </plugins>
</build>

Шаг 2. Запустите команду пакета Maven для создания Fat JAR:

mvn package

Метод 4: использование плагина сборки Maven
Плагин сборки Maven — это еще один вариант создания исполняемого файла JAR с зависимостями. Он позволяет вам определять собственные дескрипторы сборки для управления содержимым и структурой окончательного JAR-файла. Вот пример использования плагина сборки Maven:

Шаг 1. Добавьте плагин сборки Maven в файл pom.xmlвашего проекта:

<build>
    <plugins>
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-assembly-plugin</artifactId>
            <version>3.3.0</version>
            <configuration>
                <descriptorRefs>
                    <descriptorRef>jar-with-dependencies</descriptorRef>
                </descriptorRefs>
            </configuration>
            <executions>
                <execution>
                    <id>make-assembly</id>
                    <phase>package</phase>
                    <goals>
                        <goal>single</goal>
                    </goals>
                </execution>
            </executions>
        </plugin>
    </plugins>
</build>

Шаг 2. Запустите команду пакета Maven, чтобы создать исполняемый файл JAR:

mvn package

В этой статье мы рассмотрели несколько методов создания исполняемого JAR-файла с зависимостями для вашего приложения Spring Boot. Вы можете выбрать подход, который лучше всего соответствует вашим потребностям, и создать приложение таким образом, чтобы его можно было легко развернуть и запустить в любой среде. Следуя этим методам, вы сможете упаковать приложение Spring Boot в автономный JAR-файл, что упростит процесс развертывания.