5.1.5版本编译Spring源码
1:工具下载
gradle下载
地址:https://services.gradle.org/distributions/
我选择的是 4.10.3 需要配置环境变量
-
GRADLE_HOME F:\gradle\gradle-4.10.3, GRADLE_USER_HOME F:\gradle\gradleRepository
-
path中增加%GRADLE_HOME%/bin;
-
黑窗口 cmd 键入命令gradle -v 查看
-
在F:\gradle\gradle-4.10.3\init.d 目录里面 新建配置文件 init.gradle
allprojects{
repositories {
def REPOSITORY_URL = 'http://maven.aliyun.com/nexus/content/groups/public/'
all { ArtifactRepository repo ->
def url = repo.url.toString()
if ((repo instanceof MavenArtifactRepository) && (url.startsWith('https://repo1.maven.org/maven2') || url.startsWith('https://jcenter.bintray.com'))) {
project.logger.lifecycle 'Repository ${repo.url} replaced by $REPOSITORY_URL .'
remove repo
}
}
maven {
url REPOSITORY_URL
}
}
}
下载spring5源码
地址:https://github.com/spring-projects/spring-framework 我选择的是5.1系列
重点: idea 版本 2019.3.5 jdk 1.8.0.102
2:项目编译
idea配置好gradle
image-20200709210445978.png导入项目修改配置
找到build.gradle
buildscript {
repositories {
//
maven{ url 'http://maven.aliyun.com/nexus/content/repositories/jcenter'}
maven{ url 'http://maven.aliyun.com/nexus/content/groups/public'}
maven { url "https://repo.spring.io/plugins-release" }
maven { url "https://plugins.gradle.org/m2/" }
}
dependencies {
classpath("io.spring.gradle:propdeps-plugin:0.0.9.RELEASE")
classpath("org.asciidoctor:asciidoctorj-pdf:1.5.0-alpha.16")
}
}
开始预先编译第一个
进入源码目录 cmd下 执行命令: gradlew :spring-oxm:compileTestJava
这个过程可能会下载一个gradle的zip包(我第一次使用gradle),让它下载就好。
会出现
image-20200709211139014.png开始编译源码
点击idea 上的 build --》build project
这个看网速了,网速给力,很快,最好是下午编译。马上就编译成功了,
中间可能会出现一些异常信息,如果版本 idea gradle jdk 和我一样,应该没啥问题,其余的无法保证了
- 书写自己代码
新建一个module。Demo
第一步:在Demo的 gradle中增加 compile(project(":spring-context"))
第二步:写代码
public class HelloSpring {
public void say(){
System.out.println("hello Spring");
}
}
public class TestMain {
public static void main(String[] args) {
AnnotationConfigApplicationContext context = new AnnotationConfigApplicationContext();
context.refresh();
context.register(HelloSpring.class);
HelloSpring helloSpring = (HelloSpring)context.getBean("helloSpring");
helloSpring.say();
}
}
点击run 就可以了。
点击run 就可以了。</pre>
此时可能会出现错误。
1:报错:找不到InstrumentationSavingAgent
因为你引入的是 spring-context
找到spring-context 的gradle 。然后找到引入InstrumentationSavingAgent所在模块的地方。把optional修改为compile
1594301726(1).jpg完美了。
image-20200709212017017.png
网友评论