用於宣告腳本中使用的外掛程式的 DSL。
在建置腳本中,plugins {}
腳本區塊 API 是此類型。也就是說,您可以在 plugins 腳本區塊的主體中使用此 API 來宣告要用於腳本的外掛程式。
plugins {}
區塊的功能與 PluginAware.apply(java.util.Map)
方法類似,後者可用於將外掛程式直接應用於 Project
物件或類似物件。一個關鍵的區別是,透過 plugins {}
區塊應用的外掛程式在概念上是應用於腳本,並延伸應用於腳本目標。目前,這兩種方法在最終結果方面沒有可觀察到的實際差異。
當在建置腳本中使用時,plugins {}
區塊僅允許完整建置腳本程式語言的嚴格子集。只能使用此類型的 API,並且值必須是字面值(例如,常數字串,而不是變數)。內插字串允許用於 PluginDependencySpec.version(java.lang.String)
,但是替換值必須來自 Gradle 屬性。此外,plugins {}
區塊必須是建置腳本的第一段程式碼。有一個例外,即 buildscript {
} 區塊(用於宣告腳本依賴項)必須位於其前面。
這表示以下限制
- 只有
PluginDependenciesSpec.id(java.lang.String)
、PluginDependenciesSpec.alias(org.gradle.api.provider.Provider)
和PluginDependenciesSpec.alias(org.gradle.api.provider.ProviderConvertible)
方法呼叫可以是頂層語句 PluginDependenciesSpec.id(java.lang.String)
呼叫之後只能跟隨PluginDependencySpec.version(java.lang.String)
和/或PluginDependencySpec.apply(boolean)
方法呼叫在返回的物件上PluginDependenciesSpec.id(java.lang.String)
、PluginDependencySpec.version(java.lang.String)
和PluginDependencySpec.apply(boolean)
方法必須使用字面參數呼叫(即,不是變數)plugins {}
腳本區塊必須位於任何buildscript {}
腳本區塊之後,但必須先於腳本中的所有其他邏輯
可以使用 plugins {}
區塊應用核心 Gradle 外掛程式。核心外掛程式必須在沒有版本號的情況下指定,並且可以具有限定或非限定 ID。也就是說,java
外掛程式可以透過以下方式使用
plugins {
id 'java'
}
或透過
plugins {
id 'org.gradle.java'
}
核心 Gradle 外掛程式使用 org.gradle
命名空間。
有關特定 Gradle 版本的可用核心外掛程式列表,請查閱使用者手冊。
非核心外掛程式可從 Gradle 外掛程式入口網站 取得。這些外掛程式由 Gradle 使用者貢獻,以擴展 Gradle 的功能。請訪問 plugins.gradle.org 以瀏覽可用的外掛程式和版本。
要使用社群外掛程式,必須指定完整限定的 ID 以及版本。
在設定腳本中使用時,此 API 會設定外掛程式的預設版本,允許建置腳本在沒有關聯版本的情況下引用外掛程式 ID。
在設定腳本中,上面概述的「嚴格語法」規則不適用。`plugins` 區塊可能包含任意程式碼,並且版本字串可能包含屬性替換。使用 `false` (預設值) 以外的值呼叫 `apply` 方法是錯誤的。
方法 | 描述 |
id(id) | 新增對具有給定 ID 的外掛程式的依賴。 |
PluginDependencySpec
id
(String
id)
新增對具有給定 ID 的外掛程式的依賴。
plugins {
id "org.company.myplugin"
}
可以使用傳回值的方法指定進一步的約束(例如版本號)。
plugins { id "org.company.myplugin" version "1.3" }
預設情況下,外掛程式會自動應用於當前腳本。可以使用 apply false
選項禁用此功能
plugins { id "org.company.myplugin" version "1.3" apply false }
這對於重用外掛程式中的任務類別或將其應用於當前腳本以外的其他目標非常有用。