Плагин Spring Boot Gradle

Плагин Spring Boot Gradle

1. обзор

Плагин Spring Boot Gradle помогает нам управлять зависимостями Spring Boot, а также упаковывать и запускать наше приложение при использовании Gradle в качестве инструмента сборки.

В этом руководстве мы обсудим, как добавить и настроить плагин, а затем увидим, как создать и запустить проект Spring Boot.

2. Конфигурация файла сборки

Во-первых, файлwe need to add the Spring Boot plugin to our build.gradle, включив его в наш разделplugins:

plugins {
    id "org.springframework.boot" version "2.0.1.RELEASE"
}

Если мы используем версию Gradle более раннюю, чем 2.1, или нам нужна динамическая конфигурация, мы можем добавить ее следующим образом:

buildscript {
    ext {
        springBootVersion = '2.0.1.RELEASE'
    }
    repositories {
        mavenCentral()
    }
    dependencies {
        classpath(
          "org.springframework.boot:spring-boot-gradle-plugin:${springBootVersion}")
    }
}

apply plugin: 'org.springframework.boot'

3. Упаковка нашего приложения

Мы можем упаковать наше приложение в исполняемый архив (файл jar или war), собрав его с помощью командыbuild:

./gradlew build

В результате сгенерированный исполняемый архив будет помещен в каталогbuild/libs.

Если мы хотим сгенерировать исполняемый файлjar, то нам также необходимо применить плагинjava:

apply plugin: 'java'

С другой стороны, если нам нужен файлwar, мы применим плагинwar:

apply plugin: 'war'

Сборка приложения создаст исполняемые архивы для Spring Boot 1.x и 2.x. Однако для каждой версии Gradle запускает разные задачи.

Затем давайте подробнее рассмотрим процесс сборки для каждой версии загрузки.

3.1. Spring Boot 2.x

В Boot 2.x задачиbootJar иbootWar отвечают за упаковку приложения.

ЗадачаbootJar отвечает за создание исполняемого файлаjar. Он создается автоматически после применения плагинаjava.

Давайте посмотрим, как мы можем выполнить задачуbootJar напрямую:

./gradlew bootJar

Точно так жеbootWar генерирует исполняемый файл war и создается после применения плагинаwar.

Мы можем выполнить задачуbootWar, используя:

./gradlew bootWar

Обратите внимание, что для Spring Boot 2.x нам нужно использовать Gradle 4.0 или новее.

Мы также можем настроить обе задачи. Например, давайте установим основной класс с помощью свойстваmainClassName:

bootJar {
    mainClassName = 'com.example.Application'
}

В качестве альтернативы, мы можем использовать использовать то же свойство из DSL Spring Boot:

springBoot {
    mainClassName = 'com.example.Application'
}

3.2. Spring Boot 1.x

With Spring Boot 1.x, bootRepackage is responsible for creating the executable archive(jar илиwar файл в зависимости от конфигурации.

Мы можем выполнить задачуbootRepackage напрямую, используя:

./gradlew bootRepackage

Подобно версии Boot 2.x, мы можем добавлять конфигурации в задачуbootRepackage в нашемbuild.gradle:

bootRepackage {
    mainClass = 'com.example.demo.Application'
}

Мы также можем отключить задачуbootRepackage, установив для параметраenabled значениеfalse:

bootRepackage {
    enabled = false
}

4. Запуск нашего приложения

После сборки приложенияwe can just run it by using the java -jar command в сгенерированном исполняемом файле jar:

java -jar build/libs/demo.jar

Spring Boot Gradle plugin also provides us with the bootRun task, который позволяет нам запускать приложение без необходимости его предварительной сборки:

./gradlew bootRun

ЗадачуbootRun можно просто настроить вbuild.gradle.

Например, мы можем определить основной класс:

bootRun {
    main = 'com.example.demo.Application'
}

5. Связь с другими плагинами

5.1. Плагин управления зависимостями

Для Spring Boot 1.x раньше применялся плагин управления зависимостями автоматически. Это приведет к импорту спецификации зависимостей Spring Boot и будет действовать аналогично управлению зависимостями для Maven.

Но начиная с Spring Boot 2.x, нам нужно явно применить его в нашемbuild.gradle, если нам нужна эта функциональность:

apply plugin: 'io.spring.dependency-management'

5.2. Плагин Java

Когда мы применяем плагинjava, плагин Spring Boot Gradle выполняет несколько действий, например:

  • создание задачиa bootJar, которую мы можем использовать для создания исполняемого файла jar

  • создание задачиa bootRun, которую мы можем использовать для непосредственного запуска нашего приложения

  • отключение задачиjar

5.3. Плагин войны

Точно так же, когда мы применяем плагинwar, это приводит к:

  • создание задачиbootWar, которую мы можем использовать для генерации исполняемого файла войны

  • отключение задачиwar

6. Заключение

В этом кратком руководстве мы узнали о плагине Spring Boot Gradle и его различных задачах.

Также мы обсудили, как он взаимодействует с другими плагинами.