Table of Contents
- 与PluginAware#apply()方法的关系
- 严格语法
- 可用的插件
- Settings脚本中的使用
- Properties
- Methods
- Script blocks
-
API Doc
PluginDependenciesSpec
在脚本中声明插件的DSL
在构建脚本中plugins {} 脚本块 是此类型的API,你能够在这个插件脚本块中声明脚本所需要的插件 …和PluginAware#apply()方法的关系
plugins {} 脚本块提供了类似于PluginAware.apply(java.util.Map)方法的目的用来直接在Project对象或者类似的对象上应用插件.
关键不同点是plugins脚本块是将插件在概念上应用到脚本中,并且它由扩展应用到脚本目标 ..
此外它们在结果上没有明显的实际性不同 ..严格的语法
当在构建脚本中使用时,plugins 脚本块允许完全构建脚本编程语言的严格子集 ..
仅仅这个类型的API 能够被使用,并且值是文本(常量字符串,非变量)..
插值字符串也是允许的,但是在PluginDependencySpec#version(java.lang.String)是允许的,并且替换值来源于Gradle 属性 …
并且此脚本块必须位于构建脚本的第一行代码,除了需要声明在buildscript{}脚本块之后(如果有),它被用来声明脚本的依赖 ..(所以它优于插件块)
隐含的约束: 仅仅 PluginDependenciesSpec.id(java.lang.String)),alias(org.gradle.api.provider.Provider),alias(org.gradle.api.provider.ProviderConvertible)方法调用也许能够是顶级语句(在此脚本块中使用的顶级语句)
- PluginDependenciesSpec.id(java.lang.String)) 调用可以后跟 PluginDependencySpec.version(java.lang.String)) 以及 PluginDependencySpec.apply(boolean) - 根据id方法所返回的对象进行方法调用
- 前者三种方法都是用文本参数进行调用(非变量)
可用插件
核心插件
核心插件默认使用org.gradle 命名空间,因此只需要完全限定id即可
社区插件
可以根据Gradle 社区插件门户进行查询可用的非核心插件 …
需要指定完全限定id 以及版本
Settings 脚本使用
在配置脚本中使用的时候,默认设置插件的版本,然后构建脚本中可以直接引用一个没有版本的插件
并且在配置脚本中上述严格语法规则不在适用,此plugins 脚本块可以包含任意的代码以及版本字符串包含属性替换值 ..
但是如果适用apply(false)之外的方法调用将视为一种错误 …
所以默认是不应用到配置脚本中,并且无法应用 …
Properites
Methods
Script blocks
Method details
PluginDependencySpec#id(String id)
增加插件依赖项 ..