一步步教你用Mac电脑使用Idea工具编译Spring5源码

环境 

  • mac电脑
  • Idea(2018版)
  • Jdk1.8
  • Gradle4.10.3
  • spring-framework(v5.1.6)

步骤

1、下载指定Spring源码

2、根据Spring下载指定版本gradle

  打开spring源码目录下gradle/wrapper/gradle-wrapper.properties可以看到需要下载的gradle版本

  

3、下载gradle

  • 下载后解压到指定目录
  • 修改环境变量
    • 打开终端输入$: vim ~/.bash_profile
  • 使环境变量生效

    • 终端输入: source ~/.bash_profile
  • 验证
    • 终端输入:gradle -v
    •  

4、gradle配置阿里云镜像

  • gradle下的init.d文件夹内创建init.gradle文件
  • 加入如下:

allprojects{
   repositories {
       def REPOSITORY_URL = 'http://maven.aliyun.com/nexus/content/groups/public/'
       all { ArtifactRepository repo ->
           if(repo instanceof MavenArtifactRepository){
               def url = repo.url.toString()
               if (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
       }
   }
}

5、导入spring源码

5.1

5.2

接下来等待idea自动帮我们编译完成即可

6、完成状态

7、测试

目录结构如下

注意:这里的代码需要分别导入对应的文件

//1、MyBean
public class MyBean {
   private String name = "Adom";

   public MyBean(String name) {
      this.name = name;
   }

   public MyBean() {
   }

   @Override
   public String toString() {
      return "MyBean{" +
            "name='" + name + '\'' +
            '}';
   }

   public String getName() {
      return name;
   }

   public void setName(String name) {
      this.name = name;
   }
}

//2、Spring-config.xml
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
      xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
      xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd">

   <bean id="myBean" class="com.adom.MyBean"/>

</beans>

//3、MyBeanTest /** * MyBean Tester. * * @author
<Authors name> * @since <pre>Jul 27, 2020</pre> * @version 1.0 */ public class MyBeanTest { @Test public void testMyBean(){ BeanFactory bf = new XmlBeanFactory( new ClassPathResource("spring-config.xml")); MyBean myTestBean = (MyBean) bf.getBean("myBean"); System.out.println(myTestBean.getName()); } } //4、Build.gradle dependencies { compile(project(":spring-beans")) compile(project(":spring-core")) testCompile group: 'junit', name: 'junit', version: '4.12' }

最后点击运行

遇到的问题

Spring-core模块核心代码报错

原因

spring源码根目录执行以下命令解决,gradle构建时缺少spring-cglib-repackspring-objenesis-repack缺少jar依赖的问题

解决方法

在终端执行如下命令:

gradle cglibRepackJar

gradle objenesisRepackJar

 

posted @ 2020-07-27 20:35  Adom_ye  阅读(1512)  评论(0编辑  收藏  举报