声明:本人下载的Spring源码为 5.1X版本,没有单独下载gradle,采用的第一种方式,直接将Spring源码导入idea,让他自己下载所有依赖。
一、安装gradle
第一种方式
- 不用自己下载Gradle,不配置Gradle的的环境变量,不配置IDEA的Gradle user home(配置这个的作用:Gradle会将项目依赖的文件下载下来后。存储到该目录。不配置默认存储到用户的根目录的.gradle文件夹下)。因为当你把Spring源码导入IDEA工程时,IDEA会自动下载工程目录下
Spring-Framework/gradle/wrapper/gradle-wrapper.properties
中指定的Gradle版本到你的家目录的 .gradle目录下,存储路径为图中zipStorePath属性指定的路径,例如:.gradle/wrapper/dists/。
图例1:
图例2:
- 实际上使用Gradle的确不需要自己额外安装一个Gradle,gradle的设计者考虑到gradle会频繁的升级因此每个gradle工程会带有一个gradle的目录,这个目录主要作用就是描述当前工程需要哪个版本的gradle,以及如何下载gradle. 因此你拿到别人的gradle项目,即使本机没有安装gradle,当你执行以gradlew开头的命令时会自行下载这个项目想要的gradle版本。
第二种方式
- 查看下载的spring源码压缩包
Spring-Framework/gradle/wrapper/gradle-wrapper.properties
中的当前项目所依赖的gradle版本,然后手动去下载对应的gradle版本,进行手动安装及进行环境变量的配置。
gradle下载地址:
https://gradle.org/releases/
https://services.gradle.org/distributions/ - 安装
- 将下载好的压缩包解压至
/usr/local/
路径下 - 将压缩包解压至当前目录
- 配置环境变量
-
mac环境配置
(1)进入家目录:cd ~
(2)编辑.bash_profile
文件#GRADLE GRADLE_HOME=/usr/local/gradle-5.5.1 GRADLE_USER_HOME=/Users/zhishengjie/workspace/IdeaProjects/.gradle PATH=$PATH:$GRADLE_HOME/bin PATH=$PATH:$GRADLE_USER_HOME export PATH
其中的GRADLE_USER_HOME作用:
纯属猜测,理性参考:
环境变量中配置的GRADLE_USER_HOME
对应 图例1[^图例1] 的distributionBase=GRADLE_USER_HOME
中的GRADLE_USER_HOME
(3)配置完成,测试:
gradle -v
忽略输出的版本号,我虽然安装了,但是我没有用这个版本的gradle。图例3:
-
window环境配置
待补充,其实很简单,自行百度吧
-
- 配置成刚安装的gradle
- 将下载好的压缩包解压至
二、下载Spring源码
一、下载地址
- github:https://github.com/spring-projects/spring-framework
备注:spring源地址,下载速度慢 - gitee:https://gitee.com/mirrors/Spring-Framework
备注:码云镜像源码,自动同步git上的spring源码,下载速度快 - 选择下载的spring源码版本,我选择是5.1X,你可以自己决定下载那个版本
图例4:
二、导入idea
图例5:
图例6:
图例7: 丢失了 文字说明:选 as a project
三、配置idea
-
如果你不配置任何gradle的相关设置,spring源码导进来之后会自动下载工程目录下
Spring-Framework/gradle/wrapper/gradle-wrapper.properties
中指定的Gradle版本到你的家目录的 .gradle目录下 -
使用你自己安装的gradle
图例8: -
将gradle中的原镜像修改为阿里的镜像,可以提升依赖文件的下载速度
。。。找了一堆资料,可是没有一个看懂是怎么配置的😌,所以我就没有配置,结果就是,依赖文件我下载了三四个小时吧,中间遇到有文件下载超时的情况,但是多下载几次就成功了
如果有大佬看到希望可以指点一下。 -
经过漫长的等待… … 后,项目就导入成功了。
图例9: -
此时源码的环境已经搭建好了。然后我们查看工程下的import-into-idea.md文档,根据说明
Precompile spring-oxm with ./gradlew :spring-oxm:compileTestJava
使用idea对spring-oxm进行编译,等待显示success即可。
图例10: -
这一步应该不需要,感觉没必要。build耗时两个小时。
buid一下整个工程,等待显示success
图例11:
四、新建测试工程
-
新建Module
图例11: -
新建
图例12: -
图例13:
-
修改新建工程下的
build.gradle
文件
plugins {
id 'java'
}
group 'org.springframework'
version '5.1.21.BUILD-SNAPSHOT'
repositories {
mavenCentral()
}
dependencies {
// -----------------------------------------
compile(project(":spring-beans")) // 新增
compile(project(":spring-context")) // 新增
// -----------------------------------------
testCompile group: 'junit', name: 'junit', version: '4.12'
}
图例14:
- Reload Gradle Project
将我们在build.gradle
文件新增的spring-beans依赖导入进来
- 到此spring-zhi-test应用的配置就完成了,然后创建测试类
- 创建MyTestBean.java
package com.zsj.core.test.controller;
public class MyTestBean {
public void outStr() {
System.out.println("我是猪!!!");
}
}
- 创建Test
package com.zsj.core.test.controller;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
public class Test {
public static void main(String[] args) {
ApplicationContext ac = new ClassPathXmlApplicationContext("classpath:applicationContext.xml");
MyTestBean bean = (MyTestBean) ac.getBean("myTestBean");
bean.outStr();
}
}
- 在resources下新建applicationContext.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="myTestBean" class="com.zsj.core.test.controller.MyTestBean"/>
</beans>
图例15:
- 最后运行Test类中的main方法,显示success,成功🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮🤮
图例16:
三、最后 附:git地址
https://github.com/ice-YuLi/Spring-Framework
疑问:为什么我build自己建的应用报错,应该怎么改,望路过的大神指点一下
Execution failed for task ':spring-zhi-test:checkstyleMain'.
> Checkstyle rule violations were found. See the report at: file:///Users/zhishengjie/workspace/IdeaProjects/Spring-Framework/spring-zhi-test/build/reports/checkstyle/main.html
Checkstyle files with violations: 2
Checkstyle violations by severity: [error:5]
* Try:
Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output. Run with --scan to get full insights.