maven实战
一、 maven编译springboot源码
0. 环境
- jdk1.8
- maven 3.6.0
- gradle 4.10.3 (建议下载,后面说为什么)下载地址
- IDEA 2019专业版
- Win10 + 机械硬盘(后面说为什么)
- springboot源码2.2.5-release版本
1. 源码国内下载
- 下载源码,建议使用gitee进行下载,建议下载压缩包。下载地址
在下面选择2.2.5-release
版本进行下载zip文件
- 当然可以使用命令行。新建一个文件,然后命令行
git clone https://gitee.com/humaolin2021/spring-boot.git
2. 配置maven
2.1 配置国内镜像
2.2 配置.m文件的位置
默认的.m文件是放在c盘的,修改成别的盘,因为放在c盘容易把c盘给占满,不是特别好。
config->setting.xml
搜索repository
修改成其他的位置比如:D:/.m/repository。
2.3 IDEA配置默认Maven
3. 配置gradle
- 配置gradle的环境变量
这个完全是因为下载过程中会出现超时错误,所以使用全局的gradle进行编译就不会因为maven下载不了gradle而出现错误。
4. 编译springboot源码
4.1 删除原来的.m库
删除以前的.m库,一定要删除,因为有版本问题,还有就是如果你以前下载的库如果不完全,一定会导致编译出错。
4.2 导入idea
- 关闭原来的项目
- 如下图导入下载好的springboot,选好jdk的版本,其他默认就行了。
4.3 修改idea的maven
- idea配置自己的maven。
setting
中搜索maven
- 然后修改下面这三项
- 修改maven的参数信息
- maven的jdk对应的版本要正确
- 还有
Xmx:
设置的是占用内存,可以尽可能大一点,方便快点编译,官网上说建议512m。如果内存够用设置1024m。
4.4 修改配置文件
- 修改配置文件, 在根目录的
pom.xml
中把properties
修改成下面的内容
<!--下面的内容是为了跳过test而设置的,如果不跳过,很可能报错-->
<properties>
<revision>2.2.5.RELEASE</revision>
<main.basedir>${basedir}</main.basedir>
<disable.checks>true</disable.checks>
<skipTests>true</skipTests>
</properties>
- 修改项目的jdk版本,一定要去掉这个对号,看看后面的内容,jdk9+
4.5 执行编译命令
-
clean install -DskipTests -Pfast
从idea中执行以下代码, 点击下图然后输入,最后点击执行。 -
最后,等待几分钟,就成功了。
5. 测试验证
5.1 创建项目
- 创建一个新的spring initializer项目 从这创建
最好不要使用idea创建,因为使用idea很慢,并且很容易失败。就是demo.zip下载不下来,下载下来一个.mvn文件和src文件。
还有有的博客说,直接创建model,非常非常不建议。因为一旦model创建失败,可能会把原来编译好的东西搞毁。
5.2 导入项目
- 先关闭原来的
- 然后直接导入
5.3 项目导入自己编译好的springboot源码
- maven引入源码,按照
maven-> + -> springboot根目录的 -> pom.xml -> ok
即可
- 配置刚创建项目的
pom.xml
文件, 把出现sprinboot的地方都加上version,然后version改成自己的修改配置文件的名字。
5.4 测试
- 然后测试可不可以主启动
- 在使用
ctrl + 点击
跳转源码,就可以自己修改源代码了。
6. 错误总结
我发生了以下几类错误
- 系统错误
- maven导入依赖错误
- jdk的版本错误
- 配置文件错误
- 验证的时候出现的问题
6.1 系统错误
-
文件名称限制,文件名称太长,无法解压缩,应该从操作系统层面进行设置,暂时没找到解决办法,可能是因为硬盘的限制,所以建议使用机械因硬盘。因为使用的固态,没法解压。也可能是Win11的系统限制
-
网速问题,配置了国内镜像,一般下载依赖很快的,所以强烈建立以上步骤不要省略。
-
Exception in thread “main” java.net.ConnectException: Connection timed out: connect…错误,就是依赖下载失败,找个网速好的地方,重新下载、
6.2 maven依赖错误
-
出现graddle下载失败。不是网速的原因,自己下载没问题,直接配置环境变量,不用maven自己下载了
- 自己下载对应的gradle版本
- 解压
- 配置全局的环境变量
- cmd中测试使用gradle可以成功。
-
各种org.类找不到。
- 兄弟别为难自己了,直接删除.m库,重新下载吧。
- 网上各种删文件夹,加入依赖项,都没什么道理的。就是因为你的仓库不对,所以才会报这种错误。修改写好的项目代码,真的很容易出各种问题。
6.3 jdk版本错误
就是报的什么compiler错误。看其他博客说在pom中添加pugin指定编译器。确实有用,但是有用一次。所以还是使用IDEA老老实实的指定全局的吧。
6.4 配置文件错误
修改pom.xml文件,因为跳过test,在发布的时候是默认false的,而不跳过就很容易出错。
6.5 创建spring 项目错误
错误原因已经说了,就是IDEA不行。所以建议手动创建。当然如果页面房访问不了,可以创建maven项目,手动修改成spring的类型就行了。