基礎插件提供了一些大多數建置通用的任務和慣例,並為建置添加了結構,以提高其運行方式的一致性。它最重要的貢獻是一組 生命週期 任務,作為其他插件和建置作者提供的更具體任務的總括。

用法

build.gradle.kts
plugins {
    base
}
build.gradle
plugins {
    id 'base'
}

任務

cleanDelete

刪除建置目錄及其中的所有內容,即 layout.buildDirectory 專案屬性指定的路徑。

check — 生命週期任務

插件和建置作者應將其驗證任務(例如運行測試的任務)附加到此生命週期任務,使用 check.dependsOn(task)

assemble生命週期任務

插件和建置作者應將產生發行版和其他可消耗構件的任務附加到此生命週期任務。例如,jar 產生 Java 函式庫的可消耗構件。使用 assemble.dependsOn(task) 將任務附加到此生命週期任務。

build — 生命週期任務

依賴於checkassemble

旨在建置所有內容,包括運行所有測試、產生生產構件和產生文件。您可能很少直接將具體任務附加到 build,因為 assemblecheck 通常更合適。

buildConfiguration — 任務規則

組裝附加到命名配置的那些構件。例如,buildRuntimeElements 將執行建立附加到 runtimeElements 配置的任何構件所需的任何任務。

cleanTask — 任務規則

移除任務的 定義輸出,例如 cleanJar 將刪除 Java 插件的 jar 任務產生的 JAR 檔案。

依賴管理

基礎插件沒有添加任何 依賴關係的配置,但它確實添加了以下配置

default

當執行不帶請求屬性的依賴解析時使用的後備配置。

新的建置和插件不應使用 default 配置! 它僅為了向後相容性而保留。依賴解析應使用請求屬性執行。

archives

archives 配置上定義的所有構件都會自動由 assemble 任務建置。

新的建置和插件不應使用 archives 配置! 它僅為了向後相容性而保留。相反,任務依賴關係應直接在 assemble 任務上宣告。

貢獻的擴展

基礎插件將 base 擴展 添加到專案。這允許在專用的 DSL 區塊內配置以下屬性。

build.gradle.kts
base {
    archivesName = "gradle"
    distsDirectory = layout.buildDirectory.dir("custom-dist")
    libsDirectory = layout.buildDirectory.dir("custom-libs")
}
build.gradle
base {
    archivesName = "gradle"
    distsDirectory = layout.buildDirectory.dir('custom-dist')
    libsDirectory = layout.buildDirectory.dir('custom-libs')
}
archivesName — 預設值:$project.name

為歸檔任務提供預設的 AbstractArchiveTask.getArchiveBaseName()

distsDirectory — 預設值:layout.buildDirectory.dir("distributions")

發行版歸檔(即非 JAR 檔案)建立所在的目錄的預設名稱。

libsDirectory — 預設值:layout.buildDirectory.dir("libs")

函式庫歸檔(即 JAR 檔案)建立所在的目錄的預設名稱。

該插件還為任何擴展 AbstractArchiveTask 的任務上的以下屬性提供預設值

destinationDirectory

對於非 JAR 歸檔,預設為 distsDirectory,對於 JAR 及其衍生檔案(例如 WAR 檔案),預設為 libsDirectory

archiveVersion

如果專案沒有版本,則預設為 $project.version 或 'unspecified'。

archiveBaseName

預設為 $archivesBaseName

慣例 (已棄用)

基礎插件還添加了與歸檔建立相關的慣例,例如 ZIP、TAR 和 JAR。這些是已棄用的,並由上面描述的擴展取代。請參閱 BasePluginConvention DSL 文件,以獲取有關它們的資訊。