API文档: | PluginDependenciesSpec |
---|
用于声明要在脚本中使用的插件的 DSL。
在构建脚本中,plugins {}
脚本块 API 就是这种类型。也就是说,您可以在插件脚本块的主体中使用此 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)
and/or方法调用PluginDependencySpec.apply(boolean)
PluginDependenciesSpec.id(java.lang.String)
,PluginDependencySpec.version(java.lang.String)
并且PluginDependencySpec.apply(boolean)
方法必须使用文字参数(即不是变量)调用- 脚本
plugins {}
块必须位于任何buildscript {}
脚本块之后,但必须位于脚本中的所有其他逻辑之前
核心 Gradle 插件可以使用该plugins {}
块来应用。核心插件必须在没有版本号的情况下指定,并且可以有限定或非限定的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 }
这对于重用插件中的任务类或将其应用于当前脚本之外的其他目标非常有用。