自定义Gradle插件

一个简单的demo的目录结构

 1. 新建一个Android Library 的工程,删掉除src和build.gradle外的文件

2. src/main下新建groovy目录,然后可以在其下创建Java类似的packageName和class

3. 创建插件类 implement Plugin<Project>, 实现apply方法

4. src/main创建resources/META-INF/gralde-plugin目录,创建文件 name.properties, 这儿的name即为apply plugin的id,在文件中声明插件类

    implementation-class=XXX(3中定义的class,包含packageName)
5.  修改build.gradle文件,并将插件上传到本地库中
apply plugin : 'groovy' //导入java插件用于,编译打包我们的插件
apply plugin: 'maven' //maven插件,用于上传插件到仓库

//uploadArchives 类型是upload,这个task不是'maven'创建的
//而是'maven'定义了一个rule,而后由我们自己创建的,关于rule,请看后面内容
uploadArchives{
    //本地仓库的一种
    repositories{
        mavenDeployer {
            repository( url: uri( '../repo'))
        }
    }
}
group = "com.lling.gradle.plugin" //project属性
version = "1.0" //project属性
dependencies {
    //导入Gradle的api,要写插件,肯定要使用Gradle的api
    compile gradleApi()
    compile localGroovy()
}
6.  AS右侧执行uploadArchives Task
7. 按上面步骤中build.gradle的写法,执行6后,我们会在本地生成一个repo目录
8. 在build.gradle中添加本地仓库地址,且在dependencies中配置classpath
buildscript {
    repositories {
        jcenter()
        maven {
            url uri( './repo')
        }
    }
    dependencies {
        classpath 'com.android.tools.build:gradle:2.3.3'
        classpath 'com.lling.gradle.plugin:plugindemo:1.0'
        // NOTE: Do not place your application dependencies here; they belong
        // in the individual module build.gradle files
    }
}
9.  在需要使用该插件工程的build.gradle中使用 apply plugin:”name”。
apply plugin:”XXX"
com.lling.gradlestudy.properties文件中
implementation-class= com.lling.gradle.plugindemo.HelloPlugin

META-INF/gradle-plugins下面的文件的名字并不是随意的,其文件名去掉.properties就是 引用该插件时的id, 如上图中,我们想使用HelloPlugin插件时,在build.gralde这样引用
apply plugin ‘com.lling.gradlestudy’  //id即为文件名去掉.properties

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值