spring源码构建
spring源码地址:https://github.com/spring-projects/spring-framework.git。
由于github下载速度较慢,可以先将spring的源码导入到gitee,然后再从gitee进行下载。
gitee导入github仓库的地址:https://gitee.com/projects/import/url。
gitee导入的方式如下:
我这里导入后的下载地址为:git@gitee.com:morris131/spring-framework.git
。
构建步骤
- 下载spring源码到本地:
git clone --branch v5.2.12.RELEASE git@gitee.com:morris131/spring-framework.git
这里下载的当前最新的tag:v5.2.12.RELEASE
。
- 修改一些配置文件,加快编译构建的速度。
settings.gradle:
repositories {
gradlePluginPortal()
maven { url 'https://maven.aliyun.com/repository/public' }
maven { url 'https://repo.spring.io/plugins-release' }
}
gradle.properties:
version=5.2.12.RELEASE
org.gradle.jvmargs=-Xmx2048M
org.gradle.caching=true
org.gradle.parallel=true
org.gradle.configureondemand=true
org.gradle.daemon=true
build.gradle:
repositories {
mavenCentral()
maven { url 'https://maven.aliyun.com/nexus/content/groups/public/' }
maven { url 'https://maven.aliyun.com/nexus/content/repositories/jcenter' }
maven { url "https://repo.spring.io/libs-spring-framework-build" }
}
- 构建:
gradlew :spring-oxm:compileTestJava
,编译spring-oxm模块。
编译成功后的截图如下:
- 导入IDEA,导入项目时选择
build.gradle
文件,导入后会自动编译:
注意IDEA需要开启kotlin、gradle插件。
常见问题
- gradle下载速度慢,可以为gradle配置代理(前提是自己有梯子):
修改gradle.properties
#http
systemProp.http.proxyHost=127.0.0.1
systemProp.http.proxyPort=1080
systemProp.https.proxyHost=127.0.0.1
systemProp.https.proxyPort=1080
#socks
org.gradle.jvmargs=-DsocksProxyHost=127.0.0.1 -DsocksProxyPort=1080
- 执行
gradlew :spring-oxm:compileTestJava
命令时一直在下载gradle-5.6.4-all.zip
。
可以在https://services.gradle.org/distributions/
手动下载对应的版本,放入用户目录下对应的文件夹内,我这里是:
C:\Users\Morris\.gradle\wrapper\dists\gradle-5.6.4-bin\bxirm19lnfz6nurbatndyydux
gradle-5.6.4-all.zip
对应的下载地址为https://services.gradle.org/distributions/gradle-5.6.4-all.zip
gradle的版本要用spring中指定的版本,spring中指定的gradle版本在gradle/wrapper/gradle-wrapper.properties
中:
distributionUrl=https\://services.gradle.org/distributions/gradle-5.6.4-bin.zip
gradlew
命令是使用内置的gradle,也可以使用全局的gradle,在https://services.gradle.org/distributions/
下载对应的版本,将其解压,并将bin目录加入到环境变量中,编译时执行gradle :spring-oxm:compileTestJava
命令。