spring源码导入idea

gradle下载路径:https://services.gradle.org/distributions/

spring源码下载路径:https://github.com/spring-projects/spring-framework

网上有很多方法,但是我在使用时,多少遇到一些很问题,不好解决.这里把我个人觉得应该注意的地方,罗列一下.

1、idea的版本一定要和源码中的gradle版本一致。小版本有微小差异,应该是没有问题的

  • 查看源码的gradle版本。源码路径下gradle\wrapper目录下,gradle-wrapper.properties文件

  • 查看idea中的gradle版本。从idea的安装路径中查找,查看plugins\gradle\lib目录下jar版本

我之前,是直接用git客户端(git clone https://github.com/spring-projects/spring-framework.git)直接拉取最新的代码,但是我的idea是2018.1.2的版本。这个版本的gradle版本是4.4。而拉下来的最新的spring代码,是gradle-5.6.4-bin版本的。正式因为这种版本差异,导致我在源代码路径执行gradlew.bat和在idea导入源代码时,出现各种情况的报错。

例如,在导入idea后,gradle编译代码时,出现如下错误,就是idea和gradle版本不匹配造成的。

Cause: org.jetbrains.plugins.gradle.tooling.util.ModuleComponentIdentifierIm Lorg/gradle/api/artifacts/ModuleIdentifier;
今天安装了gradle的最新版本,编译项目的时候出现如上错误
找了一下没有发现具体的错误信息,后来发现,我的idea版本是2018.1的版本与高版本的gradle(如5.11)不兼容,奈何只能换成低版本的gradle,如gradle-4.6的版本,编译项目好了;

2、是否需要单独安装和配置gradle

我个人的经验,是不需要的。网上很多帖子,开始都是先安装和配置gradle。其实,这个我们不需要做。因为在源代码中,执行gradlew.bat命令时,会根据源代码中gradle-wrapper.properties中的属性,下载对应的版本的gradle并安装。

3、import-into-idea.md文件怎么用

我是不知道这个文件的正确用法是什么样的,我也不知道这个文件怎么执行。对我而言,我是把它当成说明文档使用。

4、实际操作步骤

  • 下载需要的spring源码。因为我的idea是2018.1.2,这个版本的gradle是4.4.所以,我在下载源代码时,只能下载spring-framework-5.0.6.RELEASE.zip这个版本的源代码。其他版本的源代码,编译使用的gradle,都不是4.4。例如spring-framework-5.2.2.RELEASE.zip,用的是gradle-5.6.4-bin版本。

  • 在源码路径,执行gradlew.bat命令

这里可能因为网络问题,出现超时提示。这个报错没有关系,我们重新执行gradlew.bat命令就好。感觉再执行命令时,上次执行下载的文件,不需要再重新下载了,所以如果提示超时,多执行几次这个命令,最后一定会成功的。

  • 在源码路径,执行gradlew.bat :spring-oxm:compileTestJava

这里,很多帖子说的是执行gradlew.bat cleanIdea :spring-oxm:compileTestJava命令。我是没执行成功过的,提示没有cleanIdea任务。我只能执行gradlew.bat :spring-oxm:compileTestJava

  • 在idea中,导入源码

在弹出的窗口,选择spring源码路径

选择Import project from external model和Gradle

use auto-import是一定要选的,至于gradle,用idea默认的,应该也是可以的。

点击finish,选择新开一个窗口,然后就进入漫长的等待。正常情况下,这期间不需要做任何操作,最终导入成功。

 

参考https://www.cnblogs.com/java-chen-hao/p/11046190.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值