Gradle自动构建系列之-五 Gradle插件

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/Leslie_LN/article/details/81225149

插件分类

Gradle插件分为二进制插件和脚步插件

二进制插进:实现了org.gradle.api.Plugin接口的插件,插件可以有plugin ID(是唯一的,plugin id是插件的别名),Gradle自带的核心插件都有一个plugin id

插件作用

当把插件应用到项目,插件会扩展项gr目功能,帮助在项目构建过程中做许多事情:

  1. 可以添加任务到项目,帮你完成测试、编译、打包等
  2. 可以添加项目构建过程中需要的依赖配置到项目,比如编译时依赖的第三方库等;
  3. 可以向项目中现有的对象类型添加新的扩展属性、方法等,比如Android{}配置块就是Android Gradle插件为Project对象添加的一个扩展
  4. 对项目进行约定,比如应用Java插件,约定src/main/java目录下为源代码,编译的时候也编译这个目录下的java源代码文件

如何应用插件到项目

插件的应用都是通过project.apply(Map

1、应用二进制插件

//’java’就是java插件的plugin ID

*方式一:***apply plugin:’java’

//org.gradle.api.plugins.JavaPlugin是Java插件的类型

*方式二:***apply plugin:’org.gradle.api.plugins.JavaPlugin’

//由于org.gradle.api.plugins包是自动导入的

*方式三:***apply:’JavaPlugin’

方式一最常见,完整的插件类型写法一般适用于我们在build文件中自定义的插件,也就是脚步插件;

2、应用脚本插件

脚本插件就是一个脚本,应用脚本插件就是把这个脚本加载进来,和二进制插件不同的是脚本插件使用的是from关键字,后面紧跟的是一个脚本文件,可以使本地的,也可以使网络的(网络的要使用HTTP URL) 形如:apply from:…

脚本插件虽然不是真正的插件,但他是脚本文件模块化的基础;我们可以将庞大的脚本文件进行分块、分段整理拆分为一个个单一职责的的文件,然后使用apply from来引用这些脚本文件,比如:将常用函数都放在utils.gradle文件中,供其他脚本文件引用

Project.apply()方法的另外两种形式

1、apply(Closure closure)

apply{

    plugin 'java'
}

该闭包用来配置一个ObjectConfigurationAction对象,在闭包中可以使用该对象的方法、属性等进行配置;效果和apply plugin:’java’一样

2、apply(Action

应用第三方发布的插件

第三方发布的作为jar的二进制插件,在应用是,必须先在buildscript{}里配置其classpath才能使用,这点不像Gradle提供的内置插件。比如Android Gradle插件,就属于Android发布的第三方插件,需要先配置:

buildscript{

    dependencies{
        classpath 'com.android.tools.build:gradle:1.5.0'
    }
}

buildscript{}块是一个在构建项目之前,为项目进行前期准备和初始化相关配置依赖的地方,配置好所需依赖,就可以应用插件了

猜你喜欢

转载自blog.csdn.net/Leslie_LN/article/details/81225149