最近在导入spring源码的时候碰到了一些问题,目前问题都已经解决了。现将解决方案分享给大家,并在以后遇到这个问题后方便自己查看。
一、将github上面的代码下载到本地
在没有科学上网的软件的情况下,想直接在github上通过url来拉取项目有点慢。不如直接下载zip安装包
spring源码地址:https://github.com/spring-projects/spring-framework/tree/5.0.x
二、下载gradle并且进行配置
在将其下载好之后进行解压,进入解压目录的spring-framework-5.0.2.RELEASE\gradle\wrapper路径中,查看gradle-wrapper.properties文件的信息。文件中的distributionUrl中对应的是应该下载的gradle版本,版本这里最好和文件推荐的保持一致,不同版本的gradle差异较大!!!
这里我已经将gradle下载好并配置好了环境变量。
值得注意的是,在自行下载完gradle之后,要把distributionUrl对应的值改为本地的gradle的路径,不然就会每次编译源码的时候去gradle官网下载。
这是改了之后的路径:
在IDEA中打开项目,使用file->new->project from exiting sources,选中build.gradle
在进入IDEA后,再对gradle在IDEA中的配置进行处理
并且要对项目中jdk进行配置
三、排除spring-aspects模块
spring-aspects模块使用了aspectJ的jar,所以要先排除。不然很可能中途编译spring源码失败,等到spring源码编译好了可以参考spring源码项目使用spring-aspects
四、修改build.gradle文件
这一步卡我卡时间最长,动不动就是个401码。在查阅网上的资料后发现问题出在构建文件里,于是在build.gradle文件中将maven的仓库地址换了,将原来的注释掉换为阿里的仓库:
maven { url "https://maven.aliyun.com/repository/spring-plugin" }
下方还有个repositories,我也进行了替换:
repositories { maven { url 'http://maven.aliyun.com/nexus/content/repositories/google' } maven { url 'http://maven.aliyun.com/nexus/content/groups/public/' } maven { url 'http://maven.aliyun.com/nexus/content/repositories/jcenter'} maven { url 'http://repo.springsource.org/plugins-release'} }
然后再次重新导入构建
果然构建成功了,但是还是有在构建spring-tx的时候还是有部分报错,这时候就要在下面的地方再加一个maven仓库:
maven { url "https://repo.spring.io/libs-spring-framework-build" }
这时候就已经构建成功了!!!
文章参考来源:如何导入spring源码到IDEA_java_脚本之家