Mac 使用 IDEA 2019.3 通过maven编译SpringBoot源码,进行源码调试学习

1、从GitHub拉取源码

SpringBoot项目地址:https://github.com/spring-projects/spring-boot

注意:
编译spring boot要求:maven 3.5或者以上版本,JDK 8或以上版本

点击Branch选择分支,这里我们选择最新的2.2.X,最后点击右侧clone or download。
这里下载可能有会有点慢,耐心等…

在这里插入图片描述

2、修改pom.xml文件

解压后,修改项目根目录的pom.xml文件

在properties标签下添加:

<disable.checks>true</disable.checks>
它是用来配置,是否开启 Maven 代码检查的插件。
这里我们禁用检查。
在这里插入图片描述

3、通过maven编译

解压后的工程目录下面有个执行文件: mvnw

通过SpringBoot github 下面的说明我们可以知道

编译源码有两种方式
在这里插入图片描述
一种是通过是maven wrapper的 mvnw命令去编译
一种是通过标准的 maven命令 mvn 去编译 ,这种要求maven版本必须3.5.0或者以上版本

关于这两个有什么区别,什么是 maven wrapper?
你可以看下面文章详细了解:
参考来源:http://www.javacoder.cn/?p=759
Maven Wrapper项目的github地址:https://github.com/takari/maven-wrapper

这里我建议使用 maven去编译。你最好升级一下你的maven版本。

执行命令:

mvn clean install -DskipTests

这里需要注意:如果你的setting.xml 没有放到默认的路径下也就是:
/Users/你的用户名/.m2/setting.xml
那么执行上面这个命令的时候,maven就有可能找不到你本地仓库,就会从默认的中央仓库下载依赖,那会非常慢。
一般我们平时使用的setting.xml里面都会配置一些国内的镜像仓库,比如阿里云。也会配置本地的本地仓库。
所以这里执行mvn命令的时候,如果你的setting.xml 没有在默认路径下,你最好指定一下setting的路径

mvn clean install --settings /xxxx/xxx/settings.xml -DskipTests

DskipTests 主要作用是跳过了test打包

正常情况下,执行成功会出现下面截图的样子
在这里插入图片描述

然后到你本地仓库去找找看,有没有安装成功,出现一个 2.2.xxxBUILD-SNAPSHOT 的包

这里不是RELEASE版本啊,一定是 BUILD-SNAPSHOT 的编译快照版本。

这样才不会影响我们本地真实开发的时候引用的 Release版本

在这里插入图片描述

4、导入IDEA

打开idea,选择 File–> New --> Project form Existing Sources…

在这里插入图片描述

选择你的工程目录 spring-boot-2.2.x

在这里插入图片描述在这里插入图片描述
在这里插入图片描述

到这里,Spring Boot编译就完成

然后就可以新建一个module,进行调试学习了。

5、写个测试module

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
添加依赖
去掉生成的parent 这里不需要继承,我们直接引用需要的依赖模块

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
		 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
		 xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">

	<modelVersion>4.0.0</modelVersion>
	<artifactId>spring-boot-study</artifactId>
	<groupId>org.springframework.boot</groupId>
	<version>${revision}</version>
	<properties>
		<revision>2.2.6.BUILD-SNAPSHOT</revision>
	</properties>
	<name>Spring Boot Study</name>
	<description>这里是用来学习研究spring boot 源码的工程</description>
	<dependencies>
		<dependency>
			<groupId>org.springframework.boot</groupId>
			<artifactId>spring-boot-starter-web</artifactId>
			<version>${revision}</version>
		</dependency>
	</dependencies>
</project>

新建一个class 去测试一下
在这里插入图片描述

6、想运行里面的smoke-tests模块

如果你想运行一下里面的冒烟测试模块 smoke-test还不行
你会发现里面的spring-boot-smoke-tests模块是没有被引用的,没有被标识出来。
在这里插入图片描述
这是因为,这个模块没有被引用,打开spring-boot-tests 模块的 pom.xml 文件
可以看到 标签下面就没有对 smoke-tests模块进行引用,也没有对 deployment-tests 模块进行引用,注释的意思是说,deployment-tests 太慢了,默认情况下就没有引入。
在这里插入图片描述
这里 我们把smoke-tests模块加入就可以了

<module>spring-boot-smoke-tests</module>

在这里插入图片描述
完成以后 Reimport 一下maven项目
在这里插入图片描述

在这里插入图片描述

接下来我们用spring-boot-smoke-test-web-ui模块测试一下
在这里插入图片描述

在这里插入图片描述

访问 localhost:8080 出现下面画面就表示成功了!
在这里插入图片描述

以上是mac版本的编译过程,windows 的思路应该差不多,有需要都可以自己去尝试。

这里参考的文章来源:
1、https://blog.csdn.net/w605283073/article/details/85106902?depth_1-utm_source=distribute.pc_relevant.none-task&utm_source=distribute.pc_relevant.none-task

2、Mvnw 简介

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Jianyang.liu

从来没收到过一分钱

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值