0.环境准备与前言
- 系统:macOS 13.2.1
- java版本:1.8
- idea版本:2023.1 Ultimate Edition
- spring-framework版本:5.1.x
为了更好地学习Spring底层源码,决定自己编译一下,挑了一个带大佬注释版本的,但是遇到了三个问题,查了不少文章解决了,在此记录一下。
1. The specified Gradle installation directory
编译前需要准备gradle环境。先将项目导入idea,然后更改一下idea的设置,如图所示。
Build Tools中找到Gradle的设置,修改Distrubution为Wrapper。这样本机没有gradle时会自动下载。
2. Received status code 401 from server
错误:Could not GET 'repo.spring.io/plugins-rel…'. Received status code 401 from server
原因:国外依赖拉不下来,需要修改项目根目录下的build.gradle文件
修改:这里需要改两处
1. `buildscript`下的repositories修改aliyun地址
buildscript { repositories { 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'} maven { url "https://repo.spring.io/plugins-release" } } dependencies { classpath("io.spring.gradle:propdeps-plugin:0.0.9.RELEASE") classpath("org.asciidoctor:asciidoctorj-pdf:1.5.0-alpha.16") }}
2. configure(allprojects)下的repositories修改为aliyun maven
configure(allprojects) { project ->
group = "org.springframework"
……
repositories {
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'}
maven { url "https://repo.spring.io/libs-release" }
mavenLocal()
}
……
3. Spring failed Kotlin: Language version 1.1 is no longer supported; please, use version 1.3 or greater.
这个报错很直白,升级1.3就行;具体需要改以下三个地方:
plugins {
……
id "org.jetbrains.kotlin.jvm" version "1.3.50" apply false
……
}
kotlinVersion = "1.3.50"
compileKotlin {
kotlinOptions {
……
apiVersion = "1.3"
languageVersion = "1.3"
}
}