编译插桩之自定义gradle插件

创建自定义的gradle 插件

一、 创建Android Library

gradle 就是groovy 语言编写的

1.1 main 文件夹下创建groovy文件夹

除了src下的main目录和build.gradle 其他的都可以删了

1.2 创建groovy 文件

groovy 文件实现Plugin接口,并且实现apply()方法

package kpa.custom.plugin
import org.gradle.api.Plugin
import org.gradle.api.Project
public class CustomLogPlugin implements Plugin<Project> {
    void apply(Project project) {
        System.out.println("======CustomLogPlugin===")
    }
}
1.3 修改Library的build.gradle
apply plugin: 'groovy'
apply plugin: 'maven'

dependencies {
    implementation fileTree(dir: 'libs', includes: ['*.jar'])

    implementation gradleApi()
    implementation localGroovy()
    implementation 'com.android.tools.build:gradle:3.6.1'
}

group='danny.lifecycle.plugin'
version='1.0.0'
uploadArchives {
    repositories {
        mavenDeployer {
        //部署地址可以自己设置,既可以在本地,也可以在远程,这里设置为本地(项目根目录下的)
            repository(url: uri('../custom_log_repo'))
        }
    }
}
1.4 main文件夹下创建resources/META-INF/gradle-plugins路径, 创建properties文件, 命名格式:插件名称.peoperties
// 自定义日志插件(当然 名称自己随便定义啊)
custom.log.plugin.properties
1.5 编译
  • sync now 一下
  • 在右侧点击执行 gradle/tasks/upload/uploadArchives

可以看到在根目录下有一个custom_log_repo 文件,里面的就是我们插件的目标文件

1.6 测试

在app 的build.gradle 中引入我们自己的插件

....
//  properties 的文件名
apply plugin: 'custom.log.plugin' 
buildscript {
    repositories {
        google()
        jcenter()
        // 根目录下的地址
        maven { url '../custom_log_repo'}
    }
    dependencies {
    //group 值 + module 名 + version
        classpath 'kpa.custom.log.plugin:custom.log.plugin:1.0.0'
    }
}
android {
    ...

}
...

执行 ./gradlew clean assembkedebug 构建当前gradle

 CompileThePlugPile ./gradlew clean assembledebug

> Configure project :app
//此处便是我们插件中的打印
======CustomLogPlugin===

BUILD SUCCESSFUL in 24s
27 actionable tasks: 25 executed, 2 up-to-date

到此为止,完成了gradle 的自定义

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值