使用idea社区版编译spring5源码

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了使用idea社区版编译spring5源码相关的知识,希望对你有一定的参考价值。

参考技术A 主要是参考这篇博客完成80%的工作,剩下20%是根据报错信息自行搜索和理解解决的。遇到问题及解决方案如下:

spring-framework-5.0.x/gradle.properties 文件中添加配置: org.gradle.jvmargs=-XX:MaxPermSize=2048m -Xmx2048m -XX:MaxHeapSize=2048m

spring-framework-5.0.x/build.gradle 文件中添加配置: maven url "http://repo.springsource.org/plugins-release"

NettyNetty源码编译

环境准备

  • Jdk:1.8.0_181
  • Idea:2021.1.1 Community Edition(社区版)
  • Maven:3.6.3

1、下载Netty源码

  本例下载的是 netty-4.1.63.Final

2、使用Idea打开项目,进行编译

  • 导入Idea:File --> Open --> 选择Netty项目目录 netty-4.1.63.Final

  

  • 等待索引建立完成,在控制台输入命令:mvn clean package -DskipTests=true

  

可能出现的错误

  问题1Could not find artifact io.netty:netty-tcnative:jar:${os.detected.classifier}:2.0.38.Final in central (https://repo.maven.apache.org/maven2)

  分析:maven无法获取${os.detected.classifier}的问题,参考:https://blog.csdn.net/weixin_43962314/article/details/108933596

  解决:添加Maven运行参数

  windows系统:命令行运行增加: -Dos.detected.classifier=windows-x86_64

  Linux系统:命令行运行增加: -Dos.detected.classifier=linux-x86_64

  Mac系统:命令行运行增加: -Dos.detected.classifier=osx-x86_64

  

  或者在pom文件中,增加属性:<os.detected.classifier>osx-x86_64</os.detected.classifier>

  问题2[ERROR] Failed to execute goal org.apache.maven.plugins:maven-antrun-plugin:1.8:run (build-native-lib) on project netty-transport-native-unix-common: An Ant BuildException has occured: exec returned: 1

  [ERROR] around Ant part ...<exec resolveexecutable="true" failonerror="true" executable="make">... @ 4:71 in /Users/h__d/Documents/git-repository/netty-4.1.63.Final/transport-native-unix-common/target/antrun/build-main.xml

  分析:maven-antrun-plugin插件需要执行命令 make,检查make命令是否可用,参考:https://blog.csdn.net/weixin_33849215/article/details/90685367

  解决:修复 make 命令

  

   问题3: maven-remote-resources-plugin 插件,无法加载到远程资源

  解决:直接在pom文件中,将代码注释

<!--      <plugin>-->
<!--        <groupId>org.apache.maven.plugins</groupId>-->
<!--        <artifactId>maven-remote-resources-plugin</artifactId>-->
<!--        <version>1.5</version>-->
<!--      </plugin>--> 

3、测试运行示例

  1、运行example项目中的,src/main/java/io/netty/example/http/cors/HttpCorsServer.java,运行文件main方法

  2、效果如下:

  

  3、可以使用telnet 工具进行连接

  

 

以上是关于使用idea社区版编译spring5源码的主要内容,如果未能解决你的问题,请参考以下文章

idea社区版阉割了哪些功能

用idea编译Spring源码错误问题记录

深度解析Spring源码编译Spring源码(spring5.2.x版本)

NettyNetty源码编译

编译Spring5.2.0源码

Spring源码阅读:使用IDEA搭建Spring5.0.x源码阅读环境