PluginDependenciesSpec

用于声明在脚本中使用的插件的 DSL。

在构建脚本中,plugins {} 脚本块 API 属于此类型。也就是说,你可以在 plugins 脚本块的主体中使用此 API 来声明用于脚本的插件。

与 apply() 方法的关系

plugins {} 块的功能类似于 PluginAware.apply(java.util.Map) 方法,该方法可用于将插件直接应用于 Project 对象或类似对象。一个主要区别是,通过 plugins {} 块应用的插件在概念上是应用于脚本,并扩展到脚本目标。目前,这两种方法在最终结果方面没有明显的实际差异。

严格语法

当在构建脚本中使用时,plugins {} 块仅允许使用完整构建脚本编程语言的严格子集。只能使用此类型的 API,并且值必须是字面量(例如,常量字符串,而不是变量)。插值字符串允许用于 PluginDependencySpec.version(java.lang.String),但是替换值必须来自 Gradle 属性。此外,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 的插件的依赖。

脚本块

无脚本块

方法详情

添加对具有给定 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
}

这对于重用插件中的任务类或将其应用于当前脚本以外的其他目标非常有用。