美文网首页
AOP学习总结-Javassist捕获异常之创建gradle插件

AOP学习总结-Javassist捕获异常之创建gradle插件

作者: L_Xian | 来源:发表于2019-05-09 10:12 被阅读0次

如何利用 Javassist 去优雅的实现一个异常捕获功能,可以参考文章一文应用 AOP | 最全选型考量 + 边剖析经典开源库边实践,美滋滋

这里主要说一下文章里面没讲到的创建 gradle 步骤以及有哪些坑

第一步

创建一个 Java Library 并且命名为 buildSrc

第二步

将没有的文件全删除掉,并且把 java 文件夹重命名为 groovy ,并且创建 resources 文件夹,
在 resources 文件夹下面创建 META-INF 文件夹,在 META-INF 文件夹下面创建 gradle-plugins 文件夹,在 gradle-plugins 文件夹下面创建 MyPlugin.properties 文件。

注意:这里的 MyPlugin 是你的这个插件的名字,在引用的时候会用到。

作为上面这些后,你的 library 的目录结构大概会是下图这样:


WX20190509-100030@2x.png

第二步

在 build.gradle 中,你需要修改成如下所示:

apply plugin: 'groovy'  //必须

repositories {
    google() //必须
    jcenter() //必须
}

dependencies {
    implementation fileTree(dir: 'libs', include: ['*.jar'])
    implementation 'com.android.tools.build:gradle:3.4.0'
    implementation 'org.javassist:javassist:3.20.0-GA'
    implementation gradleApi()  //必须
    implementation localGroovy() //必须
}

第三步

创建你的 plugin 类:

package com.lzx.plugin

import com.android.build.gradle.AppExtension
import org.gradle.api.Plugin
import org.gradle.api.Project

class PathPlugin implements Plugin<Project> {
    @Override
    void apply(Project project) {
        def android = project.extensions.findByType(AppExtension)
        android.registerTransform(new PathTransform(project))
    }
}

这里有一个坑,就是包名 android studio 是不会自动导入的,所以需要你手动写进去,不然就会报错说找不到。

接下来就按照文章中的写法编写插件。

第四步

在 MyPlugin.properties 文件中添加下面内容:

implementation-class=com.lzx.plugin.PathPlugin

路径就是上面 PathPlugin 的路径。

第五步

使用插件:
在 app 的 build.gradle 文件中这样使用即可:

apply plugin: 'MyPlugin'

相关文章

网友评论

      本文标题:AOP学习总结-Javassist捕获异常之创建gradle插件

      本文链接:https://www.haomeiwen.com/subject/axpioqtx.html