美文网首页
【白水日记】Gradle(三)

【白水日记】Gradle(三)

作者: d2665f7588cb | 来源:发表于2021-03-08 10:36 被阅读0次

        上一篇我们分析了gradle插件的简单使用,这次我们看看如何自定义gradle工程的扩展配置

    新建一个目录,将之前的文件都拷贝进去

    新建一个扩展类

    在Root文件中配置path参数

    设置path属性

        此时属性已经生效,如果需要发布插件到本地

        创建一个插件文件夹

    还需要编写发布任务

    引用maven插件

    编写uploadArchives任务

    配置地址,groupId,artifactId,version

    执行uploadArchives,本地会生成一个repo目录,根据上一步的groupId,依次生成对应文件夹

    最后生成的jar包,可以供其他项目使用

    使用方法:

        配置本地maven仓库

    引用插件

    使用插件,配置参数 

    编译结果

    关于gradle的插件,应用较多的就是动态生成代码,通过编写注解标记,在编译期间生成代码,也即通过脚本完成批处理处理

    编写注解有时需要给注解加上注解,注解的注解就被成为元注解

    编写一个注解:

    @Target({ElementType.TYPE})@Retention(RetentionPolicy.CLASS)public@interfaceDestination{Stringurl();Stringdescription()default"";}

    @Retention:表示注解存在的位置

       @Retention(RetentionPolicy.SOURCE)   //仅存在于源码中,在class字节码文件中不包含

     @Retention(RetentionPolicy.CLASS)     // 默认行为,注解会在class字节码文件中存在

        @Retention(RetentionPolicy.RUNTIME)  // 注解会在class字节码文件中存在,在运行时可以通过反射获取到

        相应的target:

        @Target:注解的作用目标

        @Target(ElementType.TYPE)   //接口、类、枚举、注解

        @Target(ElementType.FIELD) //字段、枚举的常量

        @Target(ElementType.METHOD) //方法

        @Target(ElementType.PARAMETER) //方法参数

        @Target(ElementType.CONSTRUCTOR)  //构造函数

        @Target(ElementType.LOCAL_VARIABLE)//局部变量

        @Target(ElementType.ANNOTATION_TYPE)//注解

        @Target(ElementType.PACKAGE) //包   

    相关文章

      网友评论

          本文标题:【白水日记】Gradle(三)

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