美文网首页
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