Gradle 建立在一個外掛程式系統上。Gradle 本身主要由基礎架構組成,例如精密的相依性解析引擎。其餘功能來自外掛程式。
外掛程式是一段軟體,提供 Gradle 建置系統額外的功能。

外掛程式可以套用於 Gradle 建置指令碼,以新增新的工作、組態或其他與建置相關的功能
- Java 函式庫外掛程式 -
java-library
-
用於定義和建置 Java 函式庫。它會使用
compileJava
工作編譯 Java 原始碼,使用javadoc
工作產生 Javadoc,並使用jar
工作將已編譯的類別封裝成 JAR 檔案。 - Google 服務 Gradle 外掛程式 -
com.google.gms:google-services
-
使用稱為
googleServices{}
的組態區塊和稱為generateReleaseAssets
的工作,在您的 Android 應用程式中啟用 Google API 和 Firebase 服務。 - Gradle Bintray 外掛程式 -
com.jfrog.bintray
-
讓您可以使用
bintray{}
區塊設定外掛程式,將成品發佈到 Bintray。
外掛程式發行
外掛程式以三種方式發行
-
核心外掛程式 - Gradle 開發並維護一組核心外掛程式。
-
社群外掛程式 - Gradle 的社群透過Gradle 外掛程式入口網站分享外掛程式。
-
本機外掛程式 - Gradle 讓使用者可以使用API建立自訂外掛程式。
套用外掛程式
套用外掛至專案,讓外掛能擴充專案功能。
在建置指令碼中套用外掛,請使用外掛 ID(全域唯一識別碼/名稱)和版本
plugins {
id «plugin id» version «plugin version»
}
1. 核心外掛
Gradle 核心外掛是一組包含在 Gradle 發行版中的外掛。這些外掛提供建置和管理專案的基本功能。
以下是核心外掛的一些範例
-
java:提供建置 Java 專案的支援。
-
groovy:新增編譯和測試 Groovy 原始檔的支援。
-
ear:新增建置 EAR 檔案的支援,以供企業應用程式使用。
核心外掛的獨特之處在於,在建置指令碼中套用時,會提供簡短的名稱,例如核心 JavaPlugin 的 java
。此外,也不需要版本。若要將 java
外掛套用至專案
plugins {
id("java")
}
有許多 Gradle 核心外掛 可供使用者使用。
2. 社群外掛
社群外掛是由 Gradle 社群開發的外掛,而非 Gradle 核心發行版的一部分。這些外掛提供額外的功能,可能特定於某些使用案例或技術。
Spring Boot Gradle 外掛 會封裝可執行 JAR 或 WAR 檔案,並執行 Spring Boot Java 應用程式。
若要將 org.springframework.boot
外掛套用至專案
plugins {
id("org.springframework.boot") version "3.1.5"
}
社群外掛可以在 Gradle 外掛入口網站 發布,其他 Gradle 使用者可以輕鬆地發現並使用這些外掛。
3. 本機外掛
自訂或本機外掛會在特定專案或組織中開發和使用。這些外掛不會公開分享,而且會針對專案或組織的特定需求量身打造。
本機外掛可以封裝常見的建置邏輯,提供與內部系統或工具的整合,或將複雜的功能抽象成可重複使用的元件。
Gradle 提供使用者使用 API 開發自訂外掛的功能。若要建立自己的外掛,通常會遵循下列步驟
-
定義外掛類別:建立一個新的類別,並實作
Plugin<Project>
介面。// Define a 'HelloPlugin' plugin class HelloPlugin : Plugin<Project> { override fun apply(project: Project) { // Define the 'hello' task val helloTask = project.tasks.register("hello") { doLast { println("Hello, Gradle!") } } } }
-
建置並選擇性發布外掛:產生一個包含外掛程式碼的 JAR 檔案,並選擇性地將此 JAR 發布至儲存庫(本機或遠端),以供其他專案使用。
// Publish the plugin plugins { `maven-publish` } publishing { publications { create<MavenPublication>("mavenJava") { from(components["java"]) } } repositories { mavenLocal() } }
-
套用您的外掛程式:當您想要使用外掛程式時,請在建置檔案的
plugins{}
區塊中包含外掛程式的 ID 和版本。// Apply the plugin plugins { id("com.example.hello") version "1.0" }
請參閱 外掛程式開發章節 以深入了解。
下一步: 深入了解增量建置和建置快取 >>