spring-boot-maven-plugin插件的作用

本文介绍了spring-boot-maven-plugin的作用及其对项目打包的影响。该插件能够将项目依赖的jar包整合到最终的可执行jar或war包中。文章通过实验证明,若缺少此插件,则无法正确打包依赖,导致生成的jar包无法正常运行。

在我们使用ide创建springboot项目的时候,会发现刚创建的项目就自带了这个插件的pom,那么他到底有什么作用,下面经过案例直接演示。

spring-boot-maven-plugin作用就是将项目依赖的jar包 打包进jar或者war当中,下面我做了个测试,供参考。

1、创建springboot项目

这个是刚创建的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然后按照下面进行打包。

然后现在开始java -jar运行。这时候会发现包根本运行不起来。
在这里插入图片描述
查看包的大小,会发现,打出来的包特别小,什么原因呢?就是因为没有添加maven 插件,导致没把依赖的包打进去,要知道,springbot就算是刚创建的项目,他也会依赖很多jar包,这样就导致打出来的包根本没办法用。

3、不去掉的情况

加上之后进行打包。

进行运行:

查看包的大小:

4、解压jar包

jar包是可以解压的,这就是使用插件打出来的jar包解压后的目录。

BOOT-INF:存放的该项目编译后的class文件,和依赖的jar包。
META-INF:存放了项目的依赖jar包关系。
org:存放了springboot相关的一些class文件。

### 如何在pom.xml中正确配置或定位插件 `pom.xml` 文件是 Maven 构建的核心配置文件,其中 `<build>` 节点下的 `<plugins>` 部分用于定义构建过程中使用的插件。以下是关于如何在 `pom.xml` 中正确配置或定位插件的具体方法: #### 插件的结构与基本语法 Maven插件通常通过以下字段来定义其基本信息: - **groupId**: 定义插件所属的组织或公司。 - **artifactId**: 描述插件本身的名称。 - **version**: 指定插件的具体版本号。 这些字段共同构成了插件的唯一标识符 (GAV, Group Artifact Version)。例如,在 Tomcat7 插件的配置中,可以看到如下片段[^2]: ```xml <plugin> <groupId>org.apache.tomcat.maven</groupId> <artifactId>tomcat7-maven-plugin</artifactId> <version>2.2</version> </plugin> ``` #### 插件的配置部分 除了基础的 GAV 字段外,还可以通过 `<configuration>` 子标签进一步定制插件的行为。例如,对于 Tomcat7 插件,可以通过设置端口、路径等参数实现更灵活的功能控制[^2]: ```xml <configuration> <port>85</port> <path>/</path> <ignorePackaging>true</ignorePackaging> </configuration> ``` 此部分允许开发人员指定插件运行时所需的额外选项或覆盖默认行为。 #### 插件的整体嵌套层次 完整的插件声明应位于 `<build><plugins></plugins></build>` 结构内部。下面是一个典型的例子,展示了如何将上述提到的 Tomcat7 插件集成到项目中[^2]: ```xml <build> <plugins> <plugin> <groupId>org.apache.tomcat.maven</groupId> <artifactId>tomcat7-maven-plugin</artifactId> <version>2.2</version> <configuration> <port>85</port> <path>/</path> <ignorePackaging>true</ignorePackaging> </configuration> </plugin> </plugins> </build> ``` #### 特殊情况:Tomcat10 的依赖处理 如果目标环境升级到了 Tomcat10,则需要引入新的 Servlet 和 JSP API 作为依赖项,并将其作用域设为 `provided`,因为这些库由容器提供[^4]: ```xml <dependencies> <dependency> <groupId>jakarta.servlet.jsp</groupId> <artifactId>jakarta.servlet.jsp-api</artifactId> <version>3.0.0</version> <scope>provided</scope> </dependency> <dependency> <groupId>jakarta.servlet</groupId> <artifactId>jakarta.servlet-api</artifactId> <version>5.0.0</version> <scope>provided</scope> </dependency> </dependencies> ``` 以上代码确保了应用能够兼容最新的 Jakarta EE 标准。 --- #### 总结 为了在 `pom.xml` 中正确定位并配置插件,需注意以下几个方面: 1. 使用标准的 `<plugin>` 元素及其子标签完成必要的信息填充; 2. 利用 `<configuration>` 自定义插件的工作模式; 3. 对于特定场景(如高版本服务器),还需补充相应的依赖支持以满足接口需求。 ---
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

怪 咖@

你的鼓励将是我创作的最大动力

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

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

打赏作者

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

抵扣说明:

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

余额充值