插件的作用
- 添加任务到项目中,帮你完成一些事情,比如测试、编译、打包
- 添加依赖配置到你到项目中,比如我们在编译的时候依赖到第三方库
- 向项目中现有的对象类型添加新的扩展属性、方法等,让你可以使用它们帮助我们配置、优化构建,比如android{}这个配置块就是AndroidGradle插件为Project对象添加到一个扩展
- 对项目进行一些约定,比如应用Java插件后,约定src/main/java目录下是我们源代码存放位置,在编译的时候也是编译这个目录下的Java源代码文件
如何应用一个插件
- 应用二进制插件
二进制插件实现了org.gradle.api.Plugin接口的插件,它们可有plugin id 如Java插件:apply plugin:'java'
//apply方法
void apply(Map<String,?> options)
void apply(Closure closure)
void apply(Action<? super ObjectConfigurationAction> action)
Action方式
apply(new Action<ObjectConfigurationAction>(){
@Override
void execute(ObjectConfigurationAction objectConfigurationAction){
objectConfigurationAction.plugin('java')
}
})
- 应用脚本插件
version.gradle
ext{
versionName='1.0.0'
versionCode=1
}
apply from:'version.gradle'
task printTask{
doLast{
println "appname:${versionName} code:${versionCode}"
}
}
应用第三方发布的插件
第三方发布的作为jar的二进制插件,必须要在buildscript{}里配置其classpath才能使用。buildscript{}块是一个在构建项目之前,为项目进行前期准备和初始化相关配置依赖的地方,配置好所需的依赖,就可以应用插件apply plugin: 'com.android.application'
使用plugins DSL应用插件
插件已经托管在https://plugins.gradle.org/
不需要在buildscript里配置classpath依赖,直接使用plugins就可以应用插件
plugins{
id "org.sonarqube" version "1.2"
}
自定义插件
- 自己项目使用,定义在build文件里
apply plugin:CustomPlugin
class CustomPlugin implements Plugin<Project>{
void apply(Project project){
project.task('customTask'){
doLast{
println '这是一个通过自定义插件方式创建的任务'
}
}
}
}
- 开发独立的插件供外界使用
网友评论