Idea 搭建Spring源码环境的超详细教程

本篇主要讲解如何使用Ideal 搭建Spring的源码环境,想必大家都会多多少少去看过Spring的部分源码,一般我们都是直接点进某个Spring类 然后Idea上面去下载 ,但是确实比较麻烦,而且不能添加自己对源码的注释 理解 ,本篇就来解决这个问题,手把手使用Idea 搭建Spring framework ,并且直接在Spring framework项目中添加我们自己的module 来验证环境是否正确。 本过程会比较耗时 而且容易出错 慢慢来吧。

1. clone spring-framework 项目

1.1 找到github spring-framwwork 项目

先登录github 找到 spring-framework项目

https://github.com/spring-projects

我选择的是 5.0.x

如果你觉得你网速可以,那你可以直接从 github clone 下来, 我这里先把项目传到 gitee

1.2 fork 到gitee 码云

拉取你要的 分支 git clone -b 分支

2. 查看 import-into-idea.md 文件

在下载的源码中 有一个文件是 import-into-idea 的 md文件 里面有关于导入 idea需要的 注意事项,我们来打开它

The following has been tested against IntelliJ IDEA 2016.2.2

## Steps

_Within your locally cloned spring-framework working directory:_

1. Precompile `spring-oxm` with `./gradlew :spring-oxm:compileTestJava`
2. Import into IntelliJ (File -> New -> Project from Existing Sources -> Navigate to directory -> Select build.gradle)
3. When prompted exclude the `spring-aspects` module (or after the import via File-> Project Structure -> Modules)
4. Code away

## Known issues

1. `spring-core` and `spring-oxm` should be pre-compiled due to repackaged dependencies.
See `*RepackJar` tasks in the build and https://youtrack.jetbrains.com/issue/IDEA-160605).
2. `spring-aspects` does not compile due to references to aspect types unknown to
IntelliJ IDEA. See https://youtrack.jetbrains.com/issue/IDEA-64446 for details. In the meantime, the
'spring-aspects' can be excluded from the project to avoid compilation errors.
3. While JUnit tests pass from the command line with Gradle, some may fail when run from
IntelliJ IDEA. Resolving this is a work in progress. If attempting to run all JUnit tests from within
IntelliJ IDEA, you will likely need to set the following VM options to avoid out of memory errors:
 -XX:MaxPermSize=2048m -Xmx2048m -XX:MaxHeapSize=2048m
4. If you invoke "Rebuild Project" in the IDE, you'll have to generate some test
resources of the `spring-oxm` module again (`./gradlew :spring-oxm:compileTestJava`) 

## Tips

In any case, please do not check in your own generated .iml, .ipr, or .iws files.
You'll notice these files are already intentionally in .gitignore. The same policy goes for eclipse metadata.

## FAQ

Q. What about IntelliJ IDEA's own [Gradle support](https://confluence.jetbrains.net/display/IDEADEV/Gradle+integration)?

A. Keep an eye on https://youtrack.jetbrains.com/issue/IDEA-53476

大致意思就是

2.1 在源码目录下执行

./gradlew :spring-oxm:compileTestJava

2.2 再导入导 idea 中

会开始下载 Gradle 构建工具 等,会根据 gradle-wrapper.properties 中的指定版本下载,最好不要修改它的版本

Idea导入 选择文件夹

选择使用Gradle

![image-20200924103346932](/Users/johnny/Library/Application Support/typora-user-images/image-20200924103346932.jpg)

静静的等待

2.3 排除 "spring-aspects"

排除了 spring-aspects 项目

打开settings.gradle 把 //include "spring-aspects" 注释了

2.4 下载完依赖后 (耗时可能要个15-30分钟)

可以发现 依赖都加载完成后,idea 就能识别我们导入的 spring项目了,并且图标都变亮了

3.引入自定义模块放入SpringFramework 项目下

下面就是来验证 我们的 源码环境是否 正常, 需要引入一个自定义的 模块,并且依赖 core bean 等spring依赖

3.1 新建module

右击项目 -》 new -》 module 选择 gradle 项目

3.2 添加 依赖

在新建的module下 打开 build.gradle 引入下面的依赖 spring-beans , spring-context , spring-core , spring-expression

dependencies {
 testCompile group: 'junit', name: 'junit', version: '4.12'

 compile(project(":spring-beans"))
 compile(project(":spring-context"))
 compile(project(":spring-core"))
 compile(project(":spring-expression"))
}

3.3 检查 module 是否被引入

打开settings.gradle 添加 include 'spring-demo' ,默认使用我说的创建module 方式 会自动添加的最好检查一下

3.4 编写 测试代码

3.4.1 定义Person类

package com.johnny.bean;

/**
 * @author johnny
 * @create 2020-09-07 下午11:22
 **/
public class Person {

 private String name;

 private int age;

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

 public String getName() {
 return name;
 }

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

 public int getAge() {
 return age;
 }

 public void setAge(int age) {
 this.age = age;
 }
}

3.4.2 resources 下新建 demo.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 class="com.johnny.bean.Person" id="person">
 <property name="name" value="johnny"/>
 <property name="age" value="10"/>
 </bean>
</beans>

3.4.3 新建main 加载xml 并且从容器中获取 bean

package com.johnny.bean;

import org.springframework.context.support.ClassPathXmlApplicationContext;

/**
 * @author johnny
 * @create 2020-09-07 下午11:24
 **/
public class DemoMain {

 public static void main(String[] args) {
 ClassPathXmlApplicationContext classPathXmlApplicationContext = new ClassPathXmlApplicationContext("demo.xml");
 Person person = classPathXmlApplicationContext.getBean(Person.class);
 System.out.println(person);
 }
}

可以看到 能获取到 容器中的Bean ,表示我们的spring环境搭建正确

总结

本篇主要讲解 如何使用idea 搭建spring源码环境,过程其实很耗时 而且特别容易出错,总结就是 1. clone 代码,2.进入源码目录执行 ./gradlew :spring-oxm:compileTestJava3.导入idea 中 4. 排除 exclude the spring-aspects module 5.自定义module 验证环境 , 祝愿大家环境搭建顺利。。。最好开个墙

本文由博客一文多发平台 OpenWrite 发布!

到此这篇关于Idea 搭建Spring源码环境的文章就介绍到这了,更多相关Idea Spring源码环境内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

(0)

相关推荐

  • IDEA上面搭建一个SpringBoot的web-mvc项目遇到的问题

    这几天一直在研究IDEA上面怎么搭建一个web-mvc的SpringBoot项目,看网上的教程一步步的搭建,可是还是出现一堆的问题. 为了让大家以后少走一些弯路,我在这里分享一下我这几天研究的成果,也希望对大家能有所帮助. 这里先介绍一下各种环境的配置信息:idea2016.2.1  jdk1.8.0_31 因为SpringBoot中是内置tomcat的,所以也就不需要额外的tomcat配置了,现在开始讲如何在idea上面搭建SpringBoot web-mvc项目了 步骤一:在IDEA中新建一

  • idea快速搭建springboot项目的操作方法

    Spring Boot是由Pivotal团队提供的全新框架,设计目的是用来简化新Spring应用的初始搭建以及开发过程.它主要推崇的是'消灭配置',实现零配置. 那么,如何在idea中创建一个springboot项目呢? 一.在你建立的工程下创建 Module 选择Spring initializr创建. 二.在Type处选择: Maven Project(项目的构建工具) 三.创建依赖时勾上web,mybatis,mysql(这个看你个人需要吧,可以自主选择) 建立好的项目结构如下: 相对应的

  • Idea+maven搭建SSH(struts2+hibernate5+spring5)环境的方法步骤

    最近要使用 SSH 来编写期末的考核任务,之前也在网上查阅了很久,也试出了很多的问题.也很感谢很多前辈们的总结,我也查到了很多用用的内容. 本次项目,我将以一个简单的登录案例实现 SSH 的项目整合,项目我会放到 Github 上面,需要的同学可以 clone 下来在本地跑一跑 项目地址:SSH 脚手架 一.项目环境搭建 使用 maven 搭建一个 Java Web 项目 1.1 配置 Spring 坐标依赖 引入 Spring 坐标依赖 <!-- spring-context --> <

  • 在idea环境下构建springCloud项目

    springCloud是基于springboot搭建的微服务.它利用Spring Boot的开发便利性巧妙地简化了分布式系统基础设施的开发,如服务发现注册.配置中心.消息总线.负载均衡.断路器.数据监控等,都可以用Spring Boot的开发风格做到一键启动和部署. spring cloud官方文档:http://projects.spring.io/spring-cloud/ spring cloud 中文网 : https://springcloud.cc/ 最终搭建后的工程源代码:http

  • Idea 搭建Spring源码环境的超详细教程

    本篇主要讲解如何使用Ideal 搭建Spring的源码环境,想必大家都会多多少少去看过Spring的部分源码,一般我们都是直接点进某个Spring类 然后Idea上面去下载 ,但是确实比较麻烦,而且不能添加自己对源码的注释 理解 ,本篇就来解决这个问题,手把手使用Idea 搭建Spring framework ,并且直接在Spring framework项目中添加我们自己的module 来验证环境是否正确. 本过程会比较耗时 而且容易出错 慢慢来吧. 1. clone spring-framew

  • 搭建PhpStorm+PhpStudy开发环境的超详细教程

    刚开始接触PHP开发,搭建开发环境是第一步,网上下载PhpStorm和PhpStudy软件,怎样安装和激活就不详细说了,我们重点来看一看怎样搭配这两个开发环境. 前提:现在假设你已经安装完PhpStorm和PhpStudy软件. 我的PhpStorm使用的是默认安装目录,这个没什么疑问的,PhpStudy软件我选择解压的目录是G:\Program Files\ . 在PhpStudy软件的解压目录下的www文件夹就是我们的网站根目录. 现在我们使用PhpStorm新建一个新工程. 第一步:打开P

  • 教你使用IDEA搭建spring源码阅读环境的详细步骤

    目录 第一步.准备gradle环境 第二步.下载spring源码 第一步.准备gradle环境 1.去官网下载gradle https://gradle.org/releases/ 2.将其解压缩,创建repository文件夹 和init.d文件夹 创建init.gradle文件 输入文本信息,主要是配置阿里云镜像仓库地址,和maven的类似 gradle.projectsLoaded { rootProject.allprojects { buildscript { repositories

  • grade构建阅读spring源码环境 Idea2020.3的过程

    笔者看了很多博客,从早上搞到晚上,终于成功了

  • pcl1.8.0+vs2013环境配置超详细教程

    目录 准备 安装 配置 最近开始学习pcl,经过几天的捣鼓终于将pcl1.8.0和vs2013的环境搭建起来. 准备 pcl版本:PCL-1.8.0-AllInOne-msvc2013-win64 vs版本:vs2013 下载地址链接:链接: https://pan.baidu.com/s/1L6trLERkzylkBUjTw94RNQ?pwd=ep39   提取码: ep39 因为我的电脑是64位的,所以只有64位版本. 安装 vs2013下载解压默认安装就好了. PCL整个安装过程需要注意以

  • Spring Boot 开发环境热部署详细教程

    在实际的项目开发过中,当我们修改了某个java类文件时,需要手动重新编译.然后重新启动程序的,整个过程比较麻烦,特别是项目启动慢的时候,更是影响开发效率.其实Spring Boot的项目碰到这种情况,同样也同样需要经历重新编译.重新启动程序的过程. 只不过 Spring Boot 提供了一个spring-boot-devtools的模块,使得 Spring Boot应用支持热部署,无需手动重启Spring Boot应用,,提高开发者的开发效率.接下来,聊一聊Spring Boot 开发环境热部署

  • 史上最贴心的 VS code C++ 环境配置超详细教程

    前言 秦朝打败天下无敌手的室友法苏ovo前几天参加了CCSP,裸考的他遇见了Linux下的VsCode,然后搭C++环境搭了很久. 于是,他就学会了如何配置vscode的C++环境,然后,我也顺路学会了.真好. 一.VS code 前言 VS code作为一款当下非常受欢迎的一款IDE,关于它的优势这里就不赘述了,但想必用过它的人都应该体验过配环境的绝望,尤其是C++环境的配置. 有一说一,VS code 上面C++调试起来是真的挺方便的,真的很棒. 这里给大家介绍两种C++环境配置方法: 纯手

  • 使用Maven 搭建 Spring MVC 本地部署Tomcat的详细教程

    目录 1.创建Maven 2.Maven目录和porm.xml配置 3.配置Tomcat服务器 1.创建Maven 2.Maven目录和porm.xml配置 关于java和resources文件夹需要自己创建 这个时候我们看到的只是Maven的Web项目的目录和页面,并没有Spring MVC的东西.接下来我们要做的就是来到pom.xml,编写pom.xml导入Spring MVC所使用的包.注意,我们这里没有选择使用框架支持来导入Spring MVC的包,因为使用Maven来导入更能方便管理包

  • Deepin20安装开发环境的超详细教程

    Deepin安装开发环境 系统环境配置 挂载分区 1.挂载分区(需要先卸载分区): deepin:sudo mount -t ext4 /dev/sda3 /media/zgren -o ro 此处使用deepin官网用的这个 sudo mount /dev/sda3 /media/aborn/data 2.查询uuid: sudo blkid /dev/sda3 3.修改分区文件,防止重启后挂载无效 vim /etc/fstab 添加如下内容: UUID=查询到的UUID /media/abo

  • Windows下PyCharm配置Anaconda环境(超详细教程)

    首先来明确一下Python.PyCharm和Anaconda的关系 1.Python是一种解释型.面向对象.动态数据类型的高级程序设计语言. 虽然Python3.5自带了一个解释器IDLE用来执行.py脚本,但是却不利于我们书写调试大量的代码.常见的是用Notepade++写完脚本,再用idle来执行,但却不便于调试.这时候就出现了PyCharm等IDE,来帮助我们调试开发. 2.PyCharm是一种Python IDE,带有一整套可以帮助用户在使用Python语言开发时提高其效率的工具,比如调

随机推荐