在我们使用ide创建springboot项目的时候,会发现刚创建的项目就自带了这个插件的pom,那么他到底有什么作用,下面经过案例直接演示。
spring-boot-maven-plugin作用就是将项目依赖的jar包 打包进jar或者war当中,下面我做了个测试,供参考。
1、创建springboot项目
![](https://img-blog.csdnimg.cn/e766ce544af04fa494858f2c05181b76.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80NjEwMTgzOQ==,size_16,color_FFFFFF,t_60)
这个是刚创建的springboot项目,pom.xml他就带了这个。
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
2、去掉有什么影响
在项目当中一般打包有两种包,一种是jar包,可以直接java -jar 包名
启动的,还有一种是war包,放到tomcat服务器上可以运行的。这里我演示jar包,war包也是同样的。
现在我把spring-boot-maven-plugin依赖去掉进行试验。
mvn clean install命令打包也可以,也可以通过ide右侧点击maven然后按照下面进行打包。
![](https://img-blog.csdnimg.cn/18310c50ff724303a16e602c9b42e730.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80NjEwMTgzOQ==,size_16,color_FFFFFF,t_70)
![](https://img-blog.csdnimg.cn/c771b6d3b4a54faa986dc2ff289ca0b3.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80NjEwMTgzOQ==,size_16,color_FFFFFF,t_70)
然后现在开始java -jar运行。这时候会发现包根本运行不起来。
查看包的大小,会发现,打出来的包特别小,什么原因呢?就是因为没有添加maven 插件,导致没把依赖的包打进去,要知道,springbot就算是刚创建的项目,他也会依赖很多jar包,这样就导致打出来的包根本没办法用。
![](https://img-blog.csdnimg.cn/1702caa483b645cb97a11eadfcfc730c.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80NjEwMTgzOQ==,size_16,color_FFFFFF,t_70)
3、不去掉的情况
加上之后进行打包。
![](https://img-blog.csdnimg.cn/e8109c8c4a6f4a938d6d90a1fabb506b.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80NjEwMTgzOQ==,size_16,color_FFFFFF,t_70)
进行运行:
![](https://img-blog.csdnimg.cn/5fef855422da4209b10b175614392db2.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80NjEwMTgzOQ==,size_16,color_FFFFFF,t_70)
查看包的大小:
![](https://img-blog.csdnimg.cn/79aab20f25e04a029cc777ce9d6fc037.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80NjEwMTgzOQ==,size_16,color_FFFFFF,t_70)
4、解压jar包
jar包是可以解压的,这就是使用插件打出来的jar包解压后的目录。
BOOT-INF:存放的该项目编译后的class文件,和依赖的jar包。
META-INF:存放了项目的依赖jar包关系。
org:存放了springboot相关的一些class文件。
![](https://img-blog.csdnimg.cn/95001c02427b4215a477253e3d5a5b79.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80NjEwMTgzOQ==,size_16,color_FFFFFF,t_70)