前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Android 必知必会 - 自定义 OkHttp 、OkIo 的包名

Android 必知必会 - 自定义 OkHttp 、OkIo 的包名

作者头像
他叫自己MR.张
发布2019-07-01 11:16:12
1.1K0
发布2019-07-01 11:16:12
举报
文章被收录于专栏:Android必知必会Android必知必会

版权声明:本文为他叫自己Mr.张的原创文章,转载请注明出处,否则禁止转载。 https://cloud.tencent.com/developer/article/1452988

在某些特殊的情况下,需要对项目中使用的 okhttp 的包名进行修改,避免冲突或者版本不一致导致找不到类的问题。

如果移动端访问不佳,请使用 ==> Github Pages 版。

环境:

  • macOS 10.12.6
  • IDEA CE 2016.3.5
  • OkHttp 3.8.1 源码
  • OkIo 1.13.0 源码

前置知识点

在 pom 文件中引用本地 jar 包

在对应的 module 下新建目录 lib,并拷贝 xxx. jar 包到 lib 目录后:

引用的方法如下:

代码语言:javascript
复制
<dependency> 
    <groupId>com.xxx.xxx</groupId> 
    <artifactId>xxxx</artifactId> 
    <version>x.x.x</version> 
    <type>jar</type> 
    <scope>system</scope> 
    <systemPath>${basedir}/lib/xxx.jar</systemPath> 
</dependency>

操作流程

修改流程:

  • 确定使用的 OkHttp 版本 ,在 release 里下载对应的源码;
  • 确定上述 OkHttp 版本对应的 OkIo 的版本,在 release 里下载对应的源码;
  • 在 IDEA 里打开 okio 工程
代码语言:txt
复制
- 修改 okio module 包名(abc.okio)
- build 检查有无错误,并排除错误
- 在 maven 任务里点击 package,生成 `okio-x.x.x.jar` 在 IDEA 里打开 okhttp 工程, 
代码语言:txt
复制
- 在 maven 任务里点击 okhttp module 的 `compile` 编译(必要步骤,不先执行此步骤会找不到某个类)
- 修改 okhttp module 的 包名
- 修改 okhttp module 的 `java-templates` 的包名,其下的 `Version.java`  的 `package` 可能需要手动改
- build 检查有无错误,并排除错误
- 修改 okhttp module 的 pom 文件,并把 `okio-x.x.x.jar` 放入项目里,进行本地引用(参见前置知识)
- 使用批量搜索替换,把 `import okio` 换成 `import abc.okio` 即可
- 进行 `build` 检查是否有包引用错误
- 最后点 maven 任务里的 `package` 打包成 `okhttp-x.x.x.jar`在项目中使用: 
代码语言:txt
复制
- 把 `okio-x.x.x.jar` 和 `okhttp-x.x.x.jar` 放入需要使用的项目中使用即可。
- 引用库的类时,使用的包名是修改后包名

注意:

  1. 源码里有多个 module,注意分辨目标 module
  2. OkHttp 版本有专门对应的 OkIo 版本,可通过官方 更新日志 查询
  3. 使用 IDEA 的 build 原因是:可以直接点击错误日志跳转到有错误的代码行

链接和参考:

PS:你可以通过下面的方式和我联系

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2018年05月31日,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 前置知识点
    • 在 pom 文件中引用本地 jar 包
    • 操作流程
    领券
    问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档