API 文档 | PluginDependenciesSpec |
---|
用于在脚本中声明要使用的插件的 DSL。
在构建脚本中,plugins {}
脚本块 API 属于此类型。也就是说,您可以在 plugins 脚本块的主体中使用此 API 来声明要用于脚本的插件。
plugins {}
块与可用于直接将插件应用于 Project
对象或类似对象的 PluginAware.apply(java.util.Map)
方法具有相似的目的。一个主要区别是,通过 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 {}
脚本块之后,但必须在脚本中所有其他逻辑之前。
核心 Gradle 插件可以使用 plugins {}
块应用。核心插件必须不带版本号指定,并且可以具有限定或非限定 id。也就是说,java
插件可以通过以下方式使用:
plugins {
id 'java'
}
或通过
plugins {
id 'org.gradle.java'
}
核心 Gradle 插件使用 org.gradle
命名空间。
有关特定 Gradle 版本的可用核心插件列表,请查阅用户手册。
非核心插件可从 Gradle 插件门户 获取。这些插件由 Gradle 用户贡献,以扩展 Gradle 的功能。访问 plugins.gradle.org 以浏览可用的插件和版本。
要使用社区插件,必须指定完全限定的 id 和版本。
在 settings 脚本中使用时,此 API 设置插件的默认版本,允许构建脚本引用不带关联版本的插件 id。
在 settings 脚本中,上述“严格语法”规则不适用。`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 }
这对于重用插件中的任务类或将其应用于当前脚本以外的其他目标非常有用。