spring源码构建手顺


构建环境

  • windows环境

  • JAVA_HOME=JDK1.8

  • 开发工具idea

  • maven

    1
    2
    3
    4
    5
    Apache Maven 3.6.3 (cecedd343002696d0abb50b32b541b8a6ba2883f)
    Maven home: D:\JAVA\apache-maven-3.6.3\bin\..
    Java version: 1.8.0_152, vendor: Oracle Corporation, runtime: D:\JAVA\java-1.8.0_152\jdk-1.8.0_152\jre
    Default locale: zh_CN, platform encoding: UTF-8
    OS name: "windows 10", version: "10.0", arch: "amd64", family: "windows"
  • gradle

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    ------------------------------------------------------------
    Gradle 2.14.1
    ------------------------------------------------------------

    Build time: 2016-07-18 06:38:37 UTC
    Revision: d9e2113d9fb05a5caabba61798bdb8dfdca83719

    Groovy: 2.4.4
    Ant: Apache Ant(TM) version 1.9.6 compiled on June 29 2015
    JVM: 1.8.0_152 (Oracle Corporation 25.152-b16)
    OS: Windows 10 10.0 amd64
  • spring源码版本:4.3.18.RELEASE

下载源码

构建源码

  • 打开解压后的源码,修改build.gradle文件,替换所有的repositories配置
1
2
3
4
5
6
7
8
repositories {
mavenLocal()
maven { url "https://maven.aliyun.com/repository/public" }
maven { url "https://maven.aliyun.com/repository/spring" }
maven { url "https://maven.aliyun.com/repository/spring-plugin" }
maven { url "https://maven.aliyun.com/repository/gradle-plugin" }
mavenCentral()
}
  • 修改gradle-wrapper.properties配置文件中的配置,可以修改gradle的版本和下载的gradle存放的位置。一般不做修改
1
2
3
4
5
6
distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists
# 修改为已经下载好的本地文件路径,版本和未修改版本保持一致
distributionUrl=file:///D:/JAVA/gradle-2.14.1-bin.zip
  • 然后参照import-into-idea.md文件进行编译
  • 如果编译失败缺失jar包
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
FAILURE: Build failed with an exception.

* Where:
Build file 'D:\JAVA\ideaIU-2020.2.2\workspace\github\Spring-Framework\build.gradle' line: 311

* What went wrong:
Execution failed for task ':spring-core:cglibRepackJar'.
> Could not resolve all dependencies for configuration ':spring-core:jarjar'.
> Could not resolve com.googlecode.jarjar:jarjar:1.3.
Required by:
org.springframework:spring-core:4.3.18.RELEASE
> Could not resolve com.googlecode.jarjar:jarjar:1.3.
> Could not get resource 'https://repo.spring.io/libs-release/com/googlecode/jarjar/jarjar/1.3/jarjar-1.3.pom'.
> Could not HEAD 'https://repo.spring.io/libs-release/com/googlecode/jarjar/jarjar/1.3/jarjar-1.3.pom'. Received status code 401 from server: Unauthorized

* Try:
Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output.

BUILD FAILED

Total time: 48.6 secs

例如:缺失jarjar-1.3.jar,则去[maven仓库]: https://search.maven.org/下载对应的jar ,然后手动添加到maven本地仓库

1
mvn install:install-file -DgroupId=com.googlecode.jarjar -DartifactId=jarjar -Dversion=1.3 -Dpackaging=jar -Dfile=jarjar-1.3.jar