Spring源码环境搭建

每个人环境可能不太一样,如有问题欢迎在下方留言
  • 环境
IDEA版本:IntelliJ IDEA 2019.3.4 x64
操作系统:WIndow10
Java版本:1.8.0_201
构建工具:IDEA内置Gradle
Spring Framework版本:5.3.0-SNAPSHOT
  • 源码下载
源码位于git上,自行下载 https://github.com/spring-projects/spring-framework,我这里用的master版本(5.3.0-SNAPSHOT),spring Framework项目包含了多个module,如下图
  • 导入IDEA
1、先配置gradle的仓库为阿里云的,不然导入spring源码后build时的各种连接超时、异常会让你崩溃
配置文件默认位于C:\Users\【自己的用户名】\.gradle\init.gradle,里面添加如下仓库配置
allprojects{
    repositories {
        maven { url 'https://maven.aliyun.com/repository/gradle-plugin' }
        maven { url 'https://maven.aliyun.com/repository/google' }
        maven { url 'http://maven.aliyun.com/nexus/content/groups/public/' }
        maven { url 'https://maven.aliyun.com/repository/jcenter'}
    }
}
 
2、导入工程到IDEA
依次File - Open - 选择spring项目路径 - 选择导入方式为gradle ,导入项目,等待系统自动导入完成
  • 编译
导入工程后,在idea的右侧Gradle模块,可以看到整个项目的模块,先编译spring-jcl,再双击下图中的build,完成整个工程的构建
  • 测试
1、右键spring-framework工程,选择new module,选择gradle,添加用来测试的模块
2、修改新建模块的build.gradle文件,添加spring-core、spring-aop等到新建模块的依赖中
3、代码测试,基于注解的方式加载spring上下文,后去扫描package下面的bean并简单打印
 
 
  • 可能存在的问题
1、编译spring-messaging的时候出现警告,并报错,原因是指定了-Werror,遇到警告会当做错误处理
\ReactorNettyTcpConnection.java:20: 警告: [deprecation] reactor.core.publisher中的DirectProcessor已过时
import reactor.core.publisher.DirectProcessor;
                             ^
错误: 发现警告, 但指定了 -Werror
 
解决方法:
修改文件src\main\java\org\springframework\build\compile\CompilerConventionsPlugin.java,如下,将-Werror屏蔽掉即可
COMPILER_ARGS.addAll(Arrays.asList(
      "-Xlint:varargs", "-Xlint:fallthrough", "-Xlint:rawtypes", "-Xlint:deprecation",
      "-Xlint:unchecked" //, "-Werror"
 
屏蔽后重新编译,依然会有警告,但是不会当做错误处理,能正常编译完
.java:35: 警告: [deprecation] reactor.core.publisher中的DirectProcessor已过时
import reactor.core.publisher.DirectProcessor;
                             ^
  • 3
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 9
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 9
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值