spring源码导入idea
本文章介绍内容为:导入已执行过gradlew.bat 命令的spring项目,gradlew.bat编译spring项目步骤请看上篇文章编译spring源码步骤详解(不导入idea内直接编译)
第一步:预编译spring-oxm
命令行执行graldew:spring-oxm:compileTest.java
命令行执行可能会报:
java: 程序包jdk.jfr不存在
错误,要选择高版本的jdk 。
建议直接导入idea内(导入idea )给gradle、spring项目选择jdk版本
(我是所有的都改jdk版本,具体哪个影响的 后续研究)
低版本jdk预编译报错:
C:\Study\spring\spring-framework>gradlew :spring-oxm:compileTestJava
> Task :spring-core:compileJava
C:\Study\spring\spring-framework\spring-core\src\main\java\org\springframework\core\metrics\jfr\FlightRecorderStartupEvent.java:19: 错误: 程序包jdk.jfr不存在
import jdk.jfr.Category;
^
C:\Study\spring\spring-framework\spring-core\src\main\java\org\springframework\core\metrics\jfr\FlightRecorderStartupEvent.java:20: 错误: 程序包jdk.jfr不存在
import jdk.jfr.Description;
^
C:\Study\spring\spring-framework\spring-core\src\main\java\org\springframework\core\metrics\jfr\FlightRecorderStartupEvent.java:21: 错误: 程序包jdk.jfr不存在
import jdk.jfr.Event;
^
C:\Study\spring\spring-framework\spring-core\src\main\java\org\springframework\core\metrics\jfr\FlightRecorderStartupEvent.java:22: 错误: 程序包jdk.jfr不存在
import jdk.jfr.Label;
^
C:\Study\spring\spring-framework\spring-core\src\main\java\org\springframework\core\metrics\jfr\FlightRecorderStartupEvent.java:37: 错误: 找不到符号
class FlightRecorderStartupEvent extends Event {
^
符号: 类 Event
C:\Study\spring\spring-framework\spring-core\src\main\java\org\springframework\core\metrics\jfr\FlightRecorderStartupEvent.java:34: 错误: 找不到符号
@Category("Spring Application")
^
符号: 类 Category
C:\Study\spring\spring-framework\spring-core\src\main\java\org\springframework\core\metrics\jfr\FlightRecorderStartupEvent.java:35: 错误: 找不到符号
@Label("Startup Step")
^
符号: 类 Label
C:\Study\spring\spring-framework\spring-core\src\main\java\org\springframework\core\metrics\jfr\FlightRecorderStartupEvent.java:36: 错误: 找不到符号
@Description("Spring Application Startup")
^
符号: 类 Description
C:\Study\spring\spring-framework\spring-core\src\main\java\org\springframework\core\metrics\jfr\FlightRecorderStartupEvent.java:43: 错误: 找不到符号
@Label("Name")
^
符号: 类 Label
位置: 类 FlightRecorderStartupEvent
C:\Study\spring\spring-framework\spring-core\src\main\java\org\springframework\core\metrics\jfr\FlightRecorderStartupEvent.java:46: 错误: 找不到符号
@Label("Tags")
^
符号: 类 Label
位置: 类 FlightRecorderStartupEvent
> Task :spring-core:compileJava FAILED
FAILURE: Build failed with an exception.
* What went wrong:
Execution failed for task ':spring-core:compileJava'.
> Compilation failed; see the compiler error output for details.
* Try:
Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output. Run with --scan to get full insights.
* Get more help at https://help.gradle.org
Deprecated Gradle features were used in this build, making it incompatible with Gradle 7.0.
Use '--warning-mode all' to show the individual deprecation warnings.
See https://docs.gradle.org/6.5.1/userguide/command_line_interface.html#sec:command_line_warnings
BUILD FAILED in 3m 21s
19 actionable tasks: 1 executed, 18 up-to-date
idea spring项目选择jdk版本
Project Structure ——> Platform settings ——>SDKS
idea 内gradle jdk配置
File——setting——Build,Execution、Deployment——gradle
编译成功控制台打印:
第二步:执行gradlew :spring-core:compileTestJava
直接在idea控制台执行gradlew :spring-core:compileTestJava
导入构建成功后,如下图:
idea 进行gradle构建设置
默认是每次idea运行都会通过gradle去编译运行——gradle运行编译特别慢;需要改成idea自己编译运行
参考文档
gradlew.bat编译成功后,就可以导入idea了。
导入idea操作文档:
- github在线 文档:
https://github.com/spring-projects/spring-framework/blob/main/import-into-idea.md
- 在本地克隆的spring-framework工作目录中:
{你的spring项目存放地址}/import-into-idea.md
,我本地文档为:C:\Study\spring\spring-framework\import-into-idea.md
idea 相关文档
- idea文档:https://www.jetbrains.com/idea/resources/
- idea gradle编译参考文档:https://www.jetbrains.com/help/idea/gradle.html
推荐博文:https://blog.csdn.net/java_lyvee/article/details/107300648