在某些特殊的情况下,需要对项目中使用的 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 目录后:
引用的方法如下:
<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 工程
- 修改 okio module 包名(abc.okio)
- build 检查有无错误,并排除错误
- 在 maven 任务里点击 package,生成
okio-x.x.x.jar
- 在 IDEA 里打开 okhttp 工程,
- 在 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
- 在 maven 任务里点击 okhttp module 的
- 在项目中使用:
- 把
okio-x.x.x.jar
和okhttp-x.x.x.jar
放入需要使用的项目中使用即可。 - 引用库的类时,使用的包名是修改后包名
- 把
注意:
- 源码里有多个 module,注意分辨目标 module
- OkHttp 版本有专门对应的 OkIo 版本,可通过官方 更新日志 查询
- 使用 IDEA 的
build
原因是:可以直接点击错误日志跳转到有错误的代码行
链接和参考:
PS:你可以通过下面的方式和我联系