Skip to content

Latest commit

 

History

History
156 lines (98 loc) · 3.71 KB

9.Gradle插件.md

File metadata and controls

156 lines (98 loc) · 3.71 KB
title date categories tags description
9.Gradle插件
2021-01-28
Gradle
Gradle

一、应用一个插件

在使用一个插件之前,要先将插件应用一下,即:apply一下,把插件添加到我们项目中,就类似Java的import语句

通过 Project.apply() 方法完成。

apply原型如下:

void apply(Map<String,?> options)
void apply(Closure closure)
void apply(Action<? super ObjectConfigurationAction> action)

二、插件类型

二进制插件

二进制插件:实现了 org.gradle.api.Plugin 接口的插件。它们有 plugin id。

apply plugin:'java'

这条语句,把java插件应用到我们项目中。 'java'是java插件的 plugin id,是唯一的。

这个是用了 void apply(Map<String,?> options) 这个方法。

对于Gradle 自带的核心插件,都有一个容易记的短名,称其为 plugin id。比如这里的java,他对应的 类型是 org.gradle.api.plugins.JavaPlugin。因此我们可以使用

apply plugin:org.gradle.api.plugins.JavaPlugin 这个是用了 void apply(Map<String,?> options) 这个方法。

又因为 org.gradle.api.plugins 这个包是默认导入的,所以我们可以去掉包名直接写: apply plugin:JavaPlugin

脚本插件

所谓脚本插件,其实就是一个gradle文件。

比如我们先自己定义一个 version.gradle文件

ext {
    versionName = '1.0'
    versionCode = 1
}

然后在build.gadle中想要使用一下

apply from:'version.gradle' // 这个是用了 `void apply(Map<String,?> options)` 这个方法。

task printVersion{
    doLast {
        println "版本是:${versionName}"
    }
}

其实就是把脚本加载进来,和二进制插件不同的是,它用了 from 这个关键字,后面紧跟脚本文件就行。跟java的 import 非常像啊。

如果是一个放在网络的脚本,就要使用HTTP URL了。

使用第三方发布的插件

比如 Android Gradle 就是第三方发布的插件,是谷歌团队专门为Android 开发的 Gradle 插件。我们在使用的时候,要先在buildscript{}中配置才行。

关于 buildscript 我们知道,

  1. buildscript 配置的 是gradle脚本自身需要使用的资源。
  2. gradle在执行脚本时,会优先执行buildscript代码块中的内容,然后才会执行剩余的build脚本。
buildscript {
    repositories {
        jcenter()
        google()
    }
    dependencies {
        classpath 'com.android.tools.build:gradle:3.1.4'
        // NOTE: Do not place your application dependencies here; they belong
        // in the individual module build.gradle files
    }
}

这里 dependencies 表示我们依赖什么插件。 repositories 表示,我们依赖的这个插件从哪里去下载。

都配好后,就可以像import语句一样使用了

apply plugin:'com.android.application'

这里配置 repositories 和 dependencies 其实跟我们在app项目中配置依赖是一样的。

在 根 build.gadle中

allprojects {
    repositories {
        jcenter()
        google()
    }
}

在 app目录下 build.gradle中

dependencies {
    implementation 'com.android.support:recyclerview-v7:28.0.0'
}

dependencies 指出,我们依赖 recyclerview 这个第三方jar包。 allprojects 中的 repositories 指出,这个jar包要去哪里下载呢。

都弄好之后,我们在java代码里就可以import了。