编译Spring5.1.x框架遇到的问题

606 阅读1分钟

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"
		}
	}