提示:编译会持续很久,而且可能会因为网络封锁导致超时编译失败,请耐性重试。
编译环境:
IDEA-2019.3.3
JDK-11 //版本太高不兼容,无法编译
spring-framework-5.1.x
gradle-4.10.3 //本地没有额外安装是spring-framework-5.1.x内置的,建议使用此版本
//以下是gradle-4.10.3里面包含的版本
Kotlin DSL: 1.0-rc-6
Kotlin: 1.2.61
Groovy: 2.4.15
Ant: Apache Ant(TM) version 1.9.11 compiled on March 23 2018
JVM: 11.0.9 (Oracle Corporation 11.0.9+7-LTS)
OS: Windows 10 10.0 amd64
注意:建议使用与我相同的版本,编译过程很复杂。遇到的主要问题是版本冲突,网速,循环依赖,软件本身的BUG等。尝试很多版本希望大家少走些弯路。
编译前必要配置:
1.build.gradle文件修改
compileKotlin {
kotlinOptions {
jvmTarget = "1.8"
freeCompilerArgs = ["-Xjsr305=strict"]
//此处修改为1.2,默认1.1,导入idea之后提示最低版本必须>=1.2,不提示可以不修改
apiVersion = "1.2"
languageVersion = "1.2"
}
}
repositories {
//增加国内的镜像buildscript{}与allprojects{}中
maven { url "https://maven.aliyun.com/repository/apache-snapshots" }
maven { url "https://maven.aliyun.com/repository/spring" }
maven { url "https://maven.aliyun.com/repository/google" }
maven { url 'https://maven.aliyun.com/repository/central'}
maven { url "https://maven.aliyun.com/repository/public" }
mavenCentral()
maven { url "https://repo.spring.io/libs-spring-framework-build" }
}
javadoc {
description = "Generates project-level javadoc for use in -javadoc jar"
options.encoding = "UTF-8"
options.memberLevel = org.gradle.external.javadoc.JavadocMemberLevel.PROTECTED
options.author = true
options.header = project.name
options.use = true
options.links(project.ext.javadocLinks)
options.addStringOption("Xdoclint:none", "-quiet")
//忽略编译时候javadoc的异常
failOnError = false
// Suppress warnings due to cross-module @see and @link references.
// Note that global 'api' task does display all warnings.
logging.captureStandardError LogLevel.INFO
logging.captureStandardOutput LogLevel.INFO // suppress "## warnings" message
}
2.gradle/docs.gradle文件(注释掉这行,编译访问不到会报错)
3.spring-beans/spring-beans.gradle(修改版本与JDK版本一致,否则编译不通过)
执行编译命令:
./gradlew build -x test --info
// --info或者--debug可以帮我们打印编译信息方便调错
// -x test 编译时跳过测试
官方参考:https://github.com/spring-projects/spring-framework/wiki/Build-from-Source
IDEA配置:
1.构建成功之后,导入intellij(File -> New -> Project from Existing Sources -> Navigate to directory -> Select build.gradle)
2.相关设置