Gradle自定义打jar包脚本

前言

聚合类型的手游SDK打包涉及多渠道打包,有需求是将渠道的java代码,根据不同的需求(规则)生成不同的jar包,而不是全部都放进一个jar包中。所以需要自己写脚本自定义打jar包。

前提

保证module 是 library的模式

通过合并文件的方式
def zipFile = file(''build/intermediates/packaged-classes/debug/classes.jar'') // 待打包文件位置
task deleteBuild(type:Delete){
	delete 'build/test.jar'  // 删除之前生成的jar包
}

task makeJar(type:Jar){
	from zipTree(zipFile)
	from fileTree(dir:'src/main',includes:['assets/**']) //包含assets文件
	baseName = 'test.jar'
	destinationDir = file('build/')
}

makeJar.dependsOn(deleteBuild,build)
注释:
  1. 以上代码块与 android{}平级。

  2. task 标示新建一个任务。

  3. type 标示该项任务的类型,可能有的类型有:

    Jar\Delete\Copy等,其他的可网上查找一下,
    
  4. dependsOn 设置task 依赖,以上代码表示执行makeJar时,会先执行deleteBuild,再执行build,最后执行makeJar.

直接生成jar包
task makeJar(type: Jar) {
    archiveName = 'test.jar'  //jar包名称
    from('build/intermediates/classes/debug/**/') //需要打jar的目录
    from('XXX') // 需包含的其他目录
    destinationDir = file('build/lib')  //将生成的jar存放的位置
}
复制已有的jar包
task makeJar(type:Copy){
    delete 'build/sgsdk_jinshan_4.0.7.jar'
    from('build/intermediates/packaged-classes/debug/')
    into('build/')
    include('classes.jar')
    //去掉不需要打包的目录和文件
//    exclude('kingsoft_pass/', 'BuildConfig.class', 'R.class')
//    exclude('sample/', 'BuildConfig.class', 'R.class')
    rename('classes.jar','sgsdk_jinshan_4.0.7.jar')
}
注释:

如果需要自定义编译class文件,可以使用gradle的已有命令脚本compileJava。

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值