记:编译成功时间:2021.01.27
环境准备:
1.idea2019.3.4
2.jdk1.8
3.gradlegradle-5.6.4
4.spring源码(版本:spring-framework-5.2.12.RELEASE)
1.首先进入链接:下载地址(Spring的源码是发布在github上面的)
2.看下图(我选择的是RELEASE版本,也就是正式发布的版本,下载一个最新的RELEASE版本就行了)
3.点击相对应的版本,然后看下图进行下载
(说明:将源码包解压以后,gradleWraper中的gradle可以远程下载gradle,也就是在spring-framework-5.2.12.RELEASE\gradle\wrapper\gradle-wrapper.properties有相应的体现。但是我没有使用远程下载,因为自己尝试了好几次,都会失败,所以自己在本地安装了一个gradle。上教程。)
选择版本很重要,千万不要随意去选择一个版本,要不然后面可能会出很多的问题。版本参考spring-framework-5.2.12.RELEASE\gradle\wrapper\gradle-wrapper.properties文件中的相应版本,如下图:
gradle下载链接:gradle下载(选择对应的binary-only版本就行)
1.解压刚刚下载的gradle压缩包
2.打开电脑的环境变量,配置GRADLE_HOME ,如下图:
3.在系统变量 path中加入:%GRADLE_HOME%\bin
4.gradle也是需要本地仓库的,要配置一个本地仓库。在本地磁盘中建一个文件夹,然后在系统变量中添加一个GRADLE_USER_HOME,然后把文件夹路径添加进去就行了,如下图:
5.测试gradle是否安装完成:在cmd输入gradle -v如果出现版本号这些就算是安装成功了。
1.因为我们自己配置了gradle,所以需要修改gradle\wrapper\gradle-wrapper.properties文件内容,让它使用我们自己配置的gradle,要不然它还是会去远程下载。
原文件是这样:
将distributionUrl修改成我们自己的gradle压缩包路径,如下图:
distributionUrl=file\:///d\:/javaTools/gradle-5.6.4-bin/gradle-5.6.4/gradle-5.6.4-bin.zip
2.找到build.gradle文件并打开,注释掉一行代码(我反正没有注释编译不会成功),如下图:
3.同样在build.gradle文件中找到repositories部分,添加阿里云镜像,这样编译会更快,如下图:
maven{
url 'https://maven.aliyun.com/nexus/content/groups/public/'}
maven{
url 'https://maven.aliyun.com/nexus/content/repositories/jcenter'}
maven {
url "http://repo.springsource.org/plugins-release" }
4.找到settings.gradle文件并打开,同样找到找到repositories部分,添加下面代码
maven{
url 'https://maven.aliyun.com/nexus/content/groups/public/'}
打开源码所在文件夹,在windows cmd命令中输入:
gradlew :spring-oxm:compileTestJava
最后显示成功即可,因为我这个是二次编译,所以用的时间较少,正常应该需要几分钟时间。
1.直接使用idea打开源码那个文件夹就行
2.如果导入进去后就开始编译了,就需要暂停编译,需要修改一些配置,要不然他还是会去远程下载gradle,我们自己本地的就无效。
依次打开:file—> setting,然后搜索gradle,点击gradle,修改成如下图:
对这个配置有个比较重要的地方说明一下:Build and run using 和 Run tests using这两个选项不要使用默认的,选择idea来进行编译会快很多(我测试过了,快了不是一点点,是很多)
3.然后就可以点击下方的build开始编译了,如下图
最后如果全是绿勾勾说明编译成功。
1.点击项目名,右击鼠标新建一个module(new->model->gradle–>输入模块名称),注意选择gradle。随便命名。
2.给自己新添加的模块添加依赖:
compile(project(":spring-context"))
package cn.ccb.beans;
import org.springframework.stereotype.Service;
/**
* @auther ccb
* 2021/1/27 10:47
* @Slogan: 可以写不出一行高深的代码,但是写出的每一行代码必须规范
* @描述:
*/
@Service
public class UserServiceImpl {
public void sayHello(){
System.out.println("你好呀spring!");
}
}
4.添加启动配置类:
package cn.ccb.beans;
import org.springframework.context.ApplicationContext;
import org.springframework.context.annotation.AnnotationConfigApplicationContext;
import org.springframework.context.annotation.ComponentScan;
import org.springframework.context.annotation.Configuration;
/**
* @auther ccb
* 2021/1/27 10:48
* @Slogan: 可以写不出一行高深的代码,但是写出的每一行代码必须规范
* @描述:
*/
@Configuration
@ComponentScan("cn.ccb")
public class MainStat {
public static void main(String[] args) {
ApplicationContext context=new AnnotationConfigApplicationContext(MainStat.class);
UserServiceImpl bean = context.getBean(UserServiceImpl.class);
bean.sayHello();
}
}
1、CoroutinesUtils找不到该类
Error:(354, 51) java: 找不到符号
符号: 变量 CoroutinesUtils
位置: 类 org.springframework.core.ReactiveAdapterRegistry.CoroutinesRegistrar
解决办法:
点击File -> Project Structure -> Libraries -> + -> Java,然后选择spring-framework/spring-core/kotlin-coroutines/build/libs/
kotlin-coroutines-5.2.12.RELEASE.jar,在弹出的对话框中选择spring-core.main,在重新build项目即可(重新编译出现新问题可不管,直接运行代码就可以了)