基本外掛程式提供一些對大多數構建來說常見的任務和慣例,並為構建加入一個結構,以促進它們執行方式的一致性。它最重要的貢獻是一組生命週期任務,作為其他外掛程式和構建作者提供的更具體任務的總稱。

用法

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

任務

clean刪除

刪除構建目錄及其中的所有內容,即由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 外掛會將 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 和 JAR 的衍生品(例如 WAR)的預設值為 libsDirectory

archiveVersion

預設值為 $project.version,如果專案沒有版本,則為「未指定」。

archiveBaseName

預設值為 $archivesBaseName

慣例(已棄用)

Base 外掛也會新增與建立封存(例如 ZIP、TAR 和 JAR)相關的慣例。這些慣例已棄用,並由上述擴充套件取代。有關這些慣例的資訊,請參閱 BasePluginConvention DSL 文件。