gradle:编译过程中修改第三方jar包

本文介绍了如何在Android项目中应对需要修改第三方开源Jar包但又不能直接引入源码的情况。通过保持工程依赖为原始jar,同时在项目内部引入需要修改的源码,并利用Gradle脚本在编译时用修改后的类覆盖原jar中的类,从而实现定制化需求。
摘要由CSDN通过智能技术生成

编译过程中修改第三方jar包

背景

Android项目过程中要引入第三方开源的jar,根据需求又要对其进行破坏性的定制,不修改源码不行。然而种种规范和要求又不能让我们将第三方源码全部拿过来再修改。
奇葩的需求和奇葩的硬性规范,导致如下难题:

工程依赖要用原始未修改的jar
jar里面某几个class要修改
开发不能将所有源码引入

解决思路

工程依赖使用原始jar
工程内引入需要修改的源码(包路径、类名称等需要和源码相同)
编译时用我们修改后代码生成的class覆盖原jar中同名class

gradle脚本如下

apply plugin: 'java'

sourceCompatibility = 1.7
targetCompatibility = 1.7

// 解压缩第三方jar包到某目录,拷贝过程中去掉我们要修改的class
task unzip(type: Copy) {

    // 原始jar包文件
    def zipFile = file('xxxxx/xxx/abcdef.jar
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值