Mac下 Spring5.2.x 源码编译
1、使用git下载spring源码
git clone https://github.com/spring-projects/spring-framework.git
2、安装gradle
参考: Mac OS下安装Gradle
3、配置gradle全局下载仓库,为了国内加速下载依赖
对所有项目生效,在~/.gradle/下创建init.gradle文件,填入以下内容
allprojects {
repositories {
def ALIYUN_REPOSITORY_URL = 'http://maven.aliyun.com/nexus/content/groups/public'
def ALIYUN_JCENTER_URL = 'http://maven.aliyun.com/nexus/content/repositories/jcenter'
all {
ArtifactRepository repo ->
if (repo instanceof MavenArtifactRepository) {
def url = repo.url.toString()
if (url.startsWith('https://repo1.maven.org/maven2')) {
project.logger.lifecycle "Repository ${repo.url} replaced by $ALIYUN_REPOSITORY_URL."
remove repo
}
if (url.startsWith('https://jcenter.bintray.com/')) {
project.logger.lifecycle "Repository ${repo.url} replaced by $ALIYUN_JCENTER_URL."
remove repo
}
}
}
maven {
url ALIYUN_REPOSITORY_URL
url ALIYUN_JCENTER_URL
}
}
}
4、首先切换到spring目录,并将分支切换到我们想编译的5.2.x
$ cd spring-framework/
输入命令,进行编译:
./gradlew build
如下图,本人编译报错如下:
解决方案:若gradle无法下载可手动下载,放置gradle/wrapper下,然后修改distributionUrl。如图
重新执行
./gradlew build
耐心等待。。。 出现绿色字体BUILD SUCCESSFUL就代表编译成功
5、将spring源码导入idea
但是在导入idea之前,还有最后一步:预编译spring-oxm 与 ./gradlew :spring-oxm:compileTestJava
输入命令进行预编译:
./gradlew :spring-oxm:compileTestJava
然后导入到idea中:(File -> New -> Project from Existing Sources -> 找到你的spring文件夹 -> 选择 build.gradle)
在耐心的等待后,我们就可以编码了。
若有需要额外下载jar包,我们可以修改 build.gradle 文件使用阿里云仓库进行加速:
repositories {
mavenCentral()
maven { url "http://maven.aliyun.com/nexus/content/groups/public" }
maven { url "https://repo.spring.io/libs-spring-framework-build" }
}
当出现编译成功且左边的项目变为加粗黑体,就代表我们编译成功了!
此时就可以愉快的撸码了。
6、上代码
右键new一个moudle,选择gradle。
在build.gradle中引入spring-context依赖:
dependencies {
compile(project(":spring-context"))
testCompile group: 'junit', name: 'junit', version: '4.12'
}
7、代码测试
由上图可以看到,执行通过。
注:每次都需要编译全文,很麻烦,可以通过修改配置更改编译方式
部分内容参考:
spring源码编译
深度解析Spring源码(一)Spring5源码编译(spring5.2.x版本)