1.解决spring源码构建时缺失spring-cglib-repack和spring-objenesis-repack问题
这里是参考出处:
如果遇到kolin编译问题,自行安装kotlin插件或者升级下即可
2.接着编译报错:找不到符号: 类 AnnotationBeanConfigurerAspect ,JCacheCacheAspect ,AnnotationAsyncExecutionAspect ,AnnotationCacheAspect ,AnnotationTransactionAspect ,具体如下
spring-framework-5.0.x\spring-aspects\src\main\java\org\springframework\context\annotation\aspectj\SpringConfiguredConfiguration.java
Error:(19, 49) java: 找不到符号
符号: 类 AnnotationBeanConfigurerAspect
位置: 程序包 org.springframework.beans.factory.aspectj
Error:(47, 16) java: 找不到符号
符号: 类 AnnotationBeanConfigurerAspect
位置: 类 org.springframework.context.annotation.aspectj.SpringConfiguredConfiguration
Error:(48, 24) java: 找不到符号
符号: 变量 AnnotationBeanConfigurerAspect
位置: 类 org.springframework.context.annotation.aspectj.SpringConfiguredConfiguration
E:\workspace_idea\spring-framework-5.0.x\spring-aspects\src\main\java\org\springframework\cache\aspectj\AspectJJCacheConfiguration.java
Error:(42, 16) java: 找不到符号
符号: 类 JCacheCacheAspect
位置: 类 org.springframework.cache.aspectj.AspectJJCacheConfiguration
Error:(43, 17) java: 找不到符号
符号: 类 JCacheCacheAspect
位置: 类 org.springframework.cache.aspectj.AspectJJCacheConfiguration
Error:(43, 49) java: 找不到符号
符号: 变量 JCacheCacheAspect
位置: 类 org.springframework.cache.aspectj.AspectJJCacheConfiguration
E:\workspace_idea\spring-framework-5.0.x\spring-aspects\src\main\java\org\springframework\scheduling\aspectj\AspectJAsyncConfiguration.java
Error:(43, 16) java: 找不到符号
符号: 类 AnnotationAsyncExecutionAspect
位置: 类 org.springframework.scheduling.aspectj.AspectJAsyncConfiguration
Error:(44, 17) java: 找不到符号
符号: 类 AnnotationAsyncExecutionAspect
位置: 类 org.springframework.scheduling.aspectj.AspectJAsyncConfiguration
Error:(44, 62) java: 找不到符号
符号: 变量 AnnotationAsyncExecutionAspect
位置: 类 org.springframework.scheduling.aspectj.AspectJAsyncConfiguration
E:\workspace_idea\spring-framework-5.0.x\spring-aspects\src\main\java\org\springframework\cache\aspectj\AspectJCachingConfiguration.java
Error:(42, 16) java: 找不到符号
符号: 类 AnnotationCacheAspect
位置: 类 org.springframework.cache.aspectj.AspectJCachingConfiguration
Error:(43, 17) java: 找不到符号
符号: 类 AnnotationCacheAspect
位置: 类 org.springframework.cache.aspectj.AspectJCachingConfiguration
Error:(43, 53) java: 找不到符号
符号: 变量 AnnotationCacheAspect
位置: 类 org.springframework.cache.aspectj.AspectJCachingConfiguration
E:\workspace_idea\spring-framework-5.0.x\spring-aspects\src\main\java\org\springframework\transaction\aspectj\AspectJTransactionManagementConfiguration.java
Error:(42, 16) java: 找不到符号
符号: 类 AnnotationTransactionAspect
位置: 类 org.springframework.transaction.aspectj.AspectJTransactionManagementConfiguration
Error:(43, 17) java: 找不到符号
符号: 类 AnnotationTransactionAspect
位置: 类 org.springframework.transaction.aspectj.AspectJTransactionManagementConfiguration
Error:(43, 56) java: 找不到符号
符号: 变量 AnnotationTransactionAspect
位置: 类 org.springframework.transaction.aspectj.AspectJTransactionManagementConfiguration
发现是不识别aspectj关键字,java是class关键字,百度需要aspectj包
解决过程:
3.1下载AspectJ注:
确保下载前安装了jdk
https://www.eclipse.org/aspectj/downloads.php
3.2安装AspectJ
打开 系统cmd 命令行 切换工作目录到 下载的AspectJ 所在目录
执行 java -jar aspectj-1.9.0.jar 进行安装
3.3配置
aop和aspects分别配置,然后删除这两模块的kotlin就可以了
4.本人idea2018切换到自己的grader V5.6:报错,com.gradle.build-scan需要2.0.2或者更高版本
报错:
com.gradle.build-scan需要2.0.2或者更高版本,但是不论我怎么制定都不行,百度有人说是idea的版本对gradle有限制,然后我删除idea下的插件重新下载发现,只下载4.4.1
这里暂猜测跟当前spring的版本,配置的gradle以及gradlew.bat的配置有关,使用默认推荐的是可以正常编译的,
gradlew.bat执行的时候下载的是v4.4.1所以,安装gradle根据配置来,build.gradle有配置插件
com.gradle.build-scan 版本,这个与grale每个版本对应关系不兼容,具体查看对应关系下载
5.继续编译时报错,依然报错xxx.jar'. Received status code 401 from server: Unauthorized
很多条,这里说的是spring仓库要权限验证,百度 了下没有说怎么通过验证,但是给了其他方案,使用阿里云仓库
放了几个他们说的不管用,感觉是仓库不对,就把所有仓库都添加进去,编译成功
build.gradle 的 buildscript 对仓库的配置 标红的即可,由于我开始添加了全部,后面去掉其他的就用了spring-plugin可以正常编译,如果不行再加上其他的
本人喜欢精准,要知道到底来自哪个仓库
repositories {
gradlePluginPortal()
// maven { url "https://repo.spring.io/plugins-release" }
// maven { url "https://maven.aliyun.com/repository/public" }
// maven { url'https://repo.spring.io/plugins-release-local' }
//阿里云仓库全家桶
maven{ url 'https://maven.aliyun.com/repository/central'}
maven{ url 'https://maven.aliyun.com/repository/public' }
maven{ url 'https://maven.aliyun.com/repository/google'}
maven{ url 'https://maven.aliyun.com/repository/gradle-plugin'}
maven{ url 'https://maven.aliyun.com/repository/spring'}
maven{ url 'https://maven.aliyun.com/repository/spring-plugin'}
maven{ url 'https://maven.aliyun.com/mvn/guide'}
maven{ url 'https://maven.aliyun.com/repository/apache-snapshots'}
}