简介: OkHttp是一个处理网络请求的开源项目,是Android端最火热的轻量级框架,由移动支付Square公司贡献用于替代HttpUrlConnection和Apache HttpClient。随着OkHttp的不断成熟,越来越多的Android开发者使用OkHttp作为网络框架。
- 从github获取源码:https://github.com/square/okhttp
- 使用intelliJ IDEA工具导入
- 下载安装及配置maven,参考博客:https://blog.csdn.net/github_37759996/article/details/90748461
IDEA的Maven配置如下
- 在Terminal窗口,执行mvn clean -X清除工程,再使用mvn compile -X编译源码;也可以在idea界面执行button,具体界面如下:
- 使用mvn package命令编译成jar,package过程中会执行单元测试用例,可添加参加-DskipTests,如mvn package -DskipTests
- 使用mvn deploy -DskipTests,可以部署到自己私有maven库中,修改如下配置
1、全局settings.xml文件
<servers>
<server>
<!-- 发布的位置在POM中配置,以ID为关联,有很多公用的信息需要配置在POM文件里,最佳实践是定义一个公司级别的root pom -->
<id>nexus</id>
<username>用户名</username>
<password>密码</password>
</server>
<server>
<id>nexus-snapshots</id>
<username>用户名</username>
<password>密码</password>
</server>
<server>
<id>thirdparty</id>
<username>用户名</username>
<password>密码</password>
</server>
</servers>
2、工程pom.xml文件需要添加如下内容
</dependencies>
</dependencyManagement>
+ <distributionManagement>
+ <repository>
+ <id>nexus</id>
+ <name>nexus Repository RELEASES</name>
+ <url>您的maven仓库地址</url>
+ </repository>
+ <snapshotRepository>
+ <id>nexus-snapshots</id>
+ <name>nexus Repository SNAPSHOTS</name>
+ <url>您的maven仓库地址</url>
+ </snapshotRepository>
+ </distributionManagement>
<build>
<pluginManagement>
deploy过程中可能会报mojoexception异常,可以注释如下内容
- <plugin>
- <groupId>org.codehaus.mojo</groupId>
- <artifactId>animal-sniffer-maven-plugin</artifactId>
- <version>${animal.sniffer.version}</version>
- <executions>
- <execution>
- <id>sniff-java18</id>
- <phase>test</phase>
- <goals>
- <goal>check</goal>
- </goals>
- <configuration>
- <signature>
- <groupId>org.codehaus.mojo.signature</groupId>
- <artifactId>java18</artifactId>
- <version>1.0</version>
- </signature>
- </configuration>
- </execution>
- <execution>
- <id>sniff-android5</id>
- 相关问题记录:
1、如果上面编译失败,比如出现从 https://repo.maven.apache.org/maven2获取库失败的报错,可以添加国内的maven库测试。例如添加腾讯的maven库,修改上面配置的settings.xml文件,如果没有配置settings.xml,可以添加工程中添加settings.xml
<mirror>
<id>nexus-tencentyun</id>
<mirrorOf>*</mirrorOf>
<name>Nexus tencentyun</name>
<url>http://mirrors.cloud.tencent.com/nexus/repository/maven-public/</url>
</mirror>
2、如出现Android10Platform.java报错
Android10Platform.jave报错,因JDK版本要求10+,可以先注释此类,再编译,编译通过
3、报[ERROR] okhttp\src\main\java\okhttp3\WebSocketListener.java:1: 鏂囦欢鏈互绌鸿缁撳熬銆
? [NewlineAtEndOfFile]
===》pom.xml中找到checkStyle插件
修改如下:
</dependencies>
<configuration>
<failsOnError>true</failsOnError>
+ <skip>true</skip>
<configLocation>checkstyle.xml</configLocation>
<consoleOutput>true</consoleOutput>
<excludes>**/CipherSuite.java</excludes>
参考文献: