Gradle 基於外掛程式系統建構。 Gradle 本身主要由基礎架構組成,例如精密的相依性解析引擎。其餘功能來自外掛程式。

外掛程式是一種軟體,可為 Gradle 建置系統提供額外功能。

gradle basic 6

外掛程式可以套用到 Gradle 建置腳本,以新增任務、配置或其他與建置相關的功能。

Java 函式庫外掛程式 - java-library

用於定義和建置 Java 函式庫。它使用 compileJava 任務編譯 Java 原始碼,使用 javadoc 任務產生 Javadoc,並使用 jar 任務將編譯後的類別封裝到 JAR 檔案中。

Google 服務 Gradle 外掛程式 - com.google.gms:google-services

在您的 Android 應用程式中啟用 Google API 和 Firebase 服務,透過名為 googleServices{} 的配置區塊和名為 generateReleaseAssets 的任務。

Gradle Bintray 外掛程式 - com.jfrog.bintray

允許您透過使用 bintray{} 區塊配置外掛程式,將成品發布到 Bintray。

外掛程式發布

外掛程式以三種方式發布

  1. 核心外掛程式 - Gradle 開發和維護一組 核心外掛程式

  2. 社群外掛程式 - Gradle 社群透過 Gradle 外掛程式入口網站 分享外掛程式。

  3. 本地外掛程式 - Gradle 讓使用者能夠使用 API 建立自訂外掛程式。

套用外掛程式

套用 外掛程式到專案可讓外掛程式擴展專案的功能。

您在建置腳本中使用外掛程式 ID(全域唯一識別碼/名稱)和版本來套用外掛程式

plugins {
    id «plugin id» version «plugin version»
}

1. 核心外掛程式

Gradle 核心外掛程式是一組包含在 Gradle 發行版本身中的外掛程式。這些外掛程式為建置和管理專案提供基本功能。

核心外掛程式的一些範例包括:

  • java:提供建置 Java 專案的支援。

  • groovy:新增編譯和測試 Groovy 原始碼檔案的支援。

  • ear:新增為企業應用程式建置 EAR 檔案的支援。

核心外掛程式的獨特之處在於,當在建置腳本中套用時,它們提供簡短的名稱,例如核心 JavaPluginjava。它們也不需要版本。要將 java 外掛程式套用到專案

build.gradle.kts
plugins {
    id("java")
}

使用者可以利用許多 Gradle 核心外掛程式

2. 社群外掛程式

社群外掛程式是由 Gradle 社群開發的外掛程式,而不是核心 Gradle 發行版的一部分。這些外掛程式提供額外功能,這些功能可能特定於某些使用案例或技術。

Spring Boot Gradle 外掛程式 封裝可執行 JAR 或 WAR 歸檔,並執行 Spring Boot Java 應用程式。

要將 org.springframework.boot 外掛程式套用到專案

build.gradle.kts
plugins {
    id("org.springframework.boot") version "3.1.5"
}

社群外掛程式可以發布在 Gradle 外掛程式入口網站 上,其他 Gradle 使用者可以在這裡輕鬆發現和使用它們。

3. 本地外掛程式

自訂或本地外掛程式是在特定專案或組織內開發和使用的。這些外掛程式不會公開分享,並且是為專案或組織的特定需求量身定制的。

本地外掛程式可以封裝常見的建置邏輯、提供與內部系統或工具的整合,或將複雜的功能抽象化為可重複使用的組件。

Gradle 為使用者提供使用 API 開發自訂外掛程式的能力。若要建立您自己的外掛程式,您通常會遵循以下步驟

  1. 定義外掛程式類別: 建立一個新的類別,實作 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!")
                }
            }
        }
    }
  2. 建置並選擇性地發布您的外掛程式: 產生一個包含您的外掛程式碼的 JAR 檔案,並選擇性地將此 JAR 發布到儲存庫(本地或遠端),以便在其他專案中使用。

    // Publish the plugin
    plugins {
        `maven-publish`
    }
    
    publishing {
        publications {
            create<MavenPublication>("mavenJava") {
                from(components["java"])
            }
        }
        repositories {
            mavenLocal()
        }
    }
  3. 套用您的外掛程式: 當您想要使用外掛程式時,請在建置檔案的 plugins{} 區塊中包含外掛程式 ID 和版本。

    // Apply the plugin
    plugins {
        id("com.example.hello") version "1.0"
    }

請參閱 外掛程式開發章節 以了解更多資訊。