1. 概述
Spring Boot Gradle 插件幫助我們管理 Spring Boot 依賴項,以及使用 Gradle 作為構建工具時打包和運行我們的應用程序。
在本教程中,我們將討論如何添加和配置插件,然後我們將看到如何構建和運行一個 Spring Boot 項目。
2. 構建文件配置
首先,我們需要將 Spring Boot 插件添加到我們的 <em >build.gradle</em ></strong> 文件中,通過將其包含在我們的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. 封裝我們的應用程序
我們可以使用 build 命令構建應用程序,將其打包成可執行歸檔文件(如 JAR 或 WAR 文件):
./gradlew build因此,生成的可執行歸檔文件將被放置在 build/libs 目錄下。
如果我們想要生成一個可執行的 jar 文件,則還需要應用 java 插件:
apply plugin: 'java'另一方面,如果我們需要一個 WAR 文件,我們將應用 WAR 插件:
apply plugin: 'war'構建應用程序將生成適用於 Spring Boot 1.x 和 2.x 的可執行歸檔文件。但是,對於每個版本,Gradle 會觸發不同的任務。
接下來,讓我們更詳細地瞭解每個 Boot 版本的構建過程。
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.baeldung.Application'
}當然,以下是翻譯後的內容:
或者,我們也可以使用 Spring Boot DSL 中的相同屬性:
springBoot {
mainClassName = 'com.baeldung.Application'
}3.2. Spring Boot 1.x
使用 Spring Boot 1.x 時,bootRepackage 負責創建可執行的歸檔文件(jar 或 war 文件,具體取決於配置)。
我們可以直接使用 bootRepackage 任務:
./gradlew bootRepackage類似於 Boot 2.x 版本,我們可以向我們的 build.gradle 中的 bootRepackage 任務添加配置。
bootRepackage {
mainClass = 'com.example.demo.Application'
}我們還可以通過將 bootRepackage 任務的 enabled 選項設置為 false 來禁用它。
bootRepackage {
enabled = false
}4. 運行我們的應用程序
構建應用程序後,我們可以通過在生成的可執行 JAR 文件上使用 <em >java -jar</em > 命令來運行它:
java -jar build/libs/demo.jarSpring Boot Gradle 插件還為我們提供了 bootRun 任務, 從而使我們能夠在無需首先構建應用程序的情況下運行應用程序:
./gradlew bootRunbootRun任務可以簡單地配置在build.gradle中。
例如,我們可以定義主類:
bootRun {
main = 'com.example.demo.Application'
}5. 與其他插件的關係
5.1 依賴管理插件
對於 Spring Boot 1.x 版本,它會自動應用依賴管理插件。 這會導入 Spring Boot 依賴的 BOM(基本構建對象)並以類似於 Maven 的方式進行依賴管理。
但是,自 Spring Boot 2.x 版本起,如果需要使用此功能,則需要在 build.gradle 中顯式地應用它:
apply plugin: 'io.spring.dependency-management'5.2. Java 插件
當應用 Java 插件時,Spring Boot Gradle 插件會執行以下操作:
- 創建 bootJar 任務,該任務可用於生成可執行的 JAR 文件
- 創建 bootRun 任務,用於直接運行應用程序
- 禁用 jar 任務
5.3. WAR 插件
類似於使用 WAR 插件,會導致以下結果:
- 創建 bootWar 任務,可用於生成可執行的 WAR 文件
- 禁用 WAR 任務
6. 結論
在本快速教程中,我們學習了 Spring Boot Gradle 插件及其不同的任務。
此外,我們還討論了它與其它插件的交互方式。