向idea中导入spring源码详解

因为spring源码是通过gradle工程构建的。所以在我们从github官网克隆完项目之后,还需要通过gradle编译才行。如果没有下载gradle,先去下载安装包,gradle官网下载安装地址如下:
https://gradle.org/next-steps/?version=4.8.1&format=all
建议通过某盘下载,官网速度太慢。之后就是配置环境变量,过程和我们配置jdk差不多。当在命令行输入gradle - v 有如下显示就没错了。在这里插入图片描述
接下来,我们可以在spring的根目录下发现import-into-idea的文件,打开之后有详细的步骤。

  1. Precompile spring-oxm with ./gradlew :spring-oxm:compileTestJava
  2. Import into IntelliJ (File -> New -> Project from Existing Sources -> Navigate to directory -> Select build.gradle)
  3. When prompted exclude the spring-aspects module (or after the import via File-> Project Structure -> Modules)
  4. Code away
    因为我们是window系统,所以应该执行gradle.bat cleanIdea :spring-oxm:compileTestJava。当编译成功之后就可以导入了。不过可能会报错。提示不能解析发现一些jar包,如下图,因为从官网在外国的服务器上,容易下载失败。重试即可。在这里插入图片描述
    同时还有可能其他问题在这里就没有截图了:
    报错原因是Failed to apply plugin [id ‘com.gradle.build-scan’]。其实就是gradle的版本太高了,和spring源码版本不一致,我修改spring源码中的build.gradle中的plugins {
    id “org.sonarqube” version “2.5”
    }之后,编译成功
    最后依赖下载完成之后会显示构建项目成功,如图:
    在这里插入图片描述
    这下我们就可以将编译后的文件导入eclipse中了,虽然已经编译成功,但是并没有.classpath和.project的文件。如果你以普通类型的项目单模块导入是导不进的,因为eclipse不能识别为是一个java项目。这时你到cmd中选择到单模块的路径下,执行gradle cleanIdea eclipse,这时就能看到已经生成了.classpath和.project的文件。
    在这里插入图片描述
    在导入的过程还遇到了几个问题,第一个就是当我以Existing gradle project类型的文件导入时,eclipse还会去下载gradle的,在这里的建议是我们提前下载好离线安装包。下载的安装包应该根据导入项目中的gradle版本一致。
    比如spring项目的话C:\Users\Administrator\git\spring-framework-4.3.22.RELEASE\gradle\wrapper中的gradle-wrapper.properties文件的distributionUrl=https://services.gradle.org/distributions/gradle-2.14.1-all.zip这一行。我们将下载好的gradle-2.14.1-all.zip放到C:\Users\Administrator.gradle\wrapper\dists\gradle-2.14.1-all\8bnwg5hd3w55iofp58khbp6yv该目录下,这样当导入项目的时候就不会再去下载了。
    而我在其他博客中看到有的博主将编译后的项目直接以普通项目的类型导入,其实应该也是可以的。如果未编译的话需要以gradle类型的文件导入。
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值