一步步教你用Mac电脑使用Idea工具编译Spring5源码
环境
- mac电脑
- Idea(2018版)
- Jdk1.8
- Gradle4.10.3
- spring-framework(v5.1.6)
步骤
2、根据Spring下载指定版本gradle
打开spring源码目录下gradle/wrapper/gradle-wrapper.properties可以看到需要下载的gradle版本
3、下载gradle
- 下载后解压到指定目录
- 修改环境变量
- 打开终端输入$: vim ~/.bash_profile
-
使环境变量生效
- 终端输入: source ~/.bash_profile
- 验证
- 终端输入:gradle -v
4、给gradle配置阿里云镜像
- 在gradle下的init.d文件夹内创建init.gradle文件
-
加入如下:
allprojects{
repositories {
def REPOSITORY_URL = 'http://maven.aliyun.com/nexus/content/groups/public/'
all { ArtifactRepository repo ->
if(repo instanceof MavenArtifactRepository){
def url = repo.url.toString()
if (url.startsWith('https://repo1.maven.org/maven2') || url.startsWith('https://jcenter.bintray.com/')) {
project.logger.lifecycle "Repository ${repo.url} replaced by $REPOSITORY_URL."
remove repo
}
}
}
maven {
url REPOSITORY_URL
}
}
}
5、导入spring源码
5.1
5.2
接下来等待idea自动帮我们编译完成即可
6、完成状态
7、测试
目录结构如下
注意:这里的代码需要分别导入对应的文件
//1、MyBean public class MyBean { private String name = "Adom"; public MyBean(String name) { this.name = name; } public MyBean() { } @Override public String toString() { return "MyBean{" + "name='" + name + '\'' + '}'; } public String getName() { return name; } public void setName(String name) { this.name = name; } } //2、Spring-config.xml <?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd"> <bean id="myBean" class="com.adom.MyBean"/> </beans>
//3、MyBeanTest /** * MyBean Tester. * * @author <Authors name> * @since <pre>Jul 27, 2020</pre> * @version 1.0 */ public class MyBeanTest { @Test public void testMyBean(){ BeanFactory bf = new XmlBeanFactory( new ClassPathResource("spring-config.xml")); MyBean myTestBean = (MyBean) bf.getBean("myBean"); System.out.println(myTestBean.getName()); } } //4、Build.gradle dependencies { compile(project(":spring-beans")) compile(project(":spring-core")) testCompile group: 'junit', name: 'junit', version: '4.12' }
最后点击运行
遇到的问题
Spring-core模块核心代码报错
原因
在spring源码根目录执行以下命令解决,gradle构建时缺少spring-cglib-repack、spring-objenesis-repack缺少jar依赖的问题
解决方法
在终端执行如下命令:
gradle cglibRepackJar
gradle objenesisRepackJar
Linux等环境软件安装
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 地球OL攻略 —— 某应届生求职总结
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 提示词工程——AI应用必不可少的技术