2020-07-09 gradle 编译spring源码

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 就可以了。

此时可能会出现错误。

1:报错:找不到InstrumentationSavingAgent

因为你引入的是 spring-context

找到spring-context 的gradle 。然后找到引入InstrumentationSavingAgent所在模块的地方。把optional修改为compile

1594301726(1).jpg

完美了。


image-20200709212017017.png

你可能感兴趣的:(2020-07-09 gradle 编译spring源码)