【白水日记】Gradle(三)

    上一篇我们分析了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) //包   

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 前面写了Android 开发:由模块化到组件化(一),很多小伙伴来问怎么没有Demo啊?之所以没有立刻放demo的...
    涅槃1992阅读 12,455评论 4 37
  • 先来看一些用到的注解:系统自带的 ButterKnife 以上是两种比较常见的注解。大家肯定也遇到过,今天要讲的是...
    ibrothergang阅读 5,869评论 1 0
  • APT-概念了解 友情链接: https://lizhaoxuan.github.io/2016/07/17/ap...
    1024HOPE阅读 5,052评论 2 2
  • java注解是在JDK5时引入的新特性,鉴于目前大部分框架(如Spring)都使用了注解简化代码并提高编码的效率,...
    tracy_668阅读 3,725评论 0 5
  • 序言 注解是Java程序和Android程序中常见的语法,之前虽然知道有这么个东西,但并没有深入了解注解。写Eve...
    左大人阅读 10,112评论 3 15