title | date | categories | tags | description | ||
---|---|---|---|---|---|---|
9.Gradle插件 |
2021-01-28 |
|
|
|
在使用一个插件之前,要先将插件应用一下,即: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 我们知道,
- buildscript 配置的 是gradle脚本自身需要使用的资源。
- 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了。