Table of Contents

  • 与PluginAware#apply()方法的关系
  • 严格语法
  • 可用的插件
  • Settings脚本中的使用
  • Properties
  • Methods
  • Script blocks
  • Methods details

    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

id(id) 通过给定的id 增加插件依赖项

Script blocks

无脚本块

Method details

PluginDependencySpec#id(String id)
增加插件依赖项 ..