OKHttp3.14源码编译记录

本文档介绍了如何从GitHub获取OkHttp源码,使用IntelliJ IDEA导入并配置Maven,然后编译、打包源码,并将其部署到私有Maven仓库。过程中涉及了清理、编译、打包、部署的Maven命令,以及解决可能出现的问题,如设置国内镜像源、JDK版本要求等。
摘要由CSDN通过智能技术生成

简介: OkHttp是一个处理网络请求的开源项目,是Android端最火热的轻量级框架,由移动支付Square公司贡献用于替代HttpUrlConnection和Apache HttpClient。随着OkHttp的不断成熟,越来越多的Android开发者使用OkHttp作为网络框架。

       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>

参考文献:

https://blog.csdn.net/xiaozhude/article/details/109111896

https://blog.csdn.net/kcstrong/article/details/82189733

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值