编写Gradle脚本实现自动化任务(SDK打包为例)

本文介绍如何利用Gradle的强大功能实现SDK的自动化打包。通过编写Gradle脚本,实现从Android Studio和Eclipse项目的源码、库、文档等资源的复制、合并,最终生成一个完整的SDK包。文章详细讲述了任务封装、参数处理以及任务执行的整个过程。
摘要由CSDN通过智能技术生成

Gradle功能强大,可以实现非常多的自动化任务, 下面以我工作中实际用到的SDK自动打包为例说明下。

1、背景:做过SDK开发或是接入过第三方SDK的都知道,SDK是有个完整包的,里面包含了示例的demo工程、接入文档、demo的apk包等,每次开发测试完成就都需要操作一遍:将最新demo工程和lib工程(或是aar)复制出来到一个目录下,同时还有demo的apk和最新的接入文档,然后操作压缩,打包成压缩包提供出去。这时候就想到了gradle的自动化任务。

2、研究过程:首先想到的是自定义Task,但是后来发现需要编译,发布等等操作,所以换了个思路,通过编写gradle脚本代码来实现,先看下初版的:

task CopyDemoTask(type:Copy) {
    from("${projectDir}/../app")
    into("${projectDir}/../doc/demo")
    exclude [".settings", "build", "bin", "gen", "*.iml", "lint.xml", "proguard", "build.gradle", "project.properties"]
    rename("build.bak.gradle", "build.gradle")
}

ps:由于项目最早是由Eclipse转过来的,所以还保留支持Eclipse的开发方式,还保留有.settings、bin、gen、lint.xml、project.properties等文件或文件夹

代码说明:从app module拷贝除了剔除的文件(为非AndroidStudio必须文件或编译的本地目录)外的所有文件到doc/demo目录下,同时将build.bak.gradle文件重命名为build.gradle,因为我们原始用到的build.gradle文件包含了一些自动化打包以及调试控制的逻辑,所以重新写了一份可以正常提供给外部的比较纯净的build.gradle文件

然后最终提供出去的包含Eclipse和AndroidStudio2种接入方式的2个demo,需要写的复制Task有10个,而且lib工程中也需要写4,5个复制Task,最终就想说可不可以抽出公共部分,通过函数定义的方式来实现复用

3、对创建task进行复用封装:

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值