记录Spring源码编译遇到的问题
之前编译好过一次,但是突然又报错了,这里记录一下错误的解决办法
问题1:Kotlin: warnings found and -Werror specified
Kotlin: warnings found and -Werror specified
解决办法:有可能是因为缺少cglib、objenesis包,点击下图两个位置下载一下:
若仍未解决若上述操作后,依旧报错,可使用如下强制措施,关闭Kotlin的-Weeror校验,删除-Weeror。
问题2:报错程序包jdk.jfr不存在
此问题一般是jdk版本问题,jdk.jfr在jdk8之后才有,更改所有jdk配置为11。注意所有,编译、运行,最好网上找一个IDEA更改所有jdk配置的大全来参照一下。这里推荐一个更改IDEA更改jdk大全的教程:IDEA更改所有jdk版本配置
我的具体更改如下:
问题3:Spring源码编译Java: 找不到符号 InstrumentationSavingAgent
将spring-context.gradle文件的
optional(project(“:spring-instrument”))
更改为:
api(project(“:spring-instrument”))
问题4:api过期问题:
报错详情:
spring-core\src\main\java\org\springframework\core\CoroutinesUtils.java:74: 警告: [deprecation] AccessibleObject中的isAccessible()已过时
if (method.isAccessible() && !KCallablesJvm.isAccessible(function)) {
解决方案:
在 org.springframework.core.CoroutinesUtils.invokeSuspendingFunction(Method method, Object target, Object… args) 方法上加 @SuppressWarnings(“deprecation”) 注解即可。