Springboot打包后jar丢失BOOT-INF问题
1.springboot打包目录介绍
Springboot打包后目录结构如下:

该目录比使用传统jar命令打包结构更复杂一些,目录含义如下:
2.关于打包后丢失BOOT-INF目录的问题
首先,一定要明确打包时如果没有指定parent模块,则不会出现BOOT-INF,因为模块里依赖都应该来自父模块。
因此,关于模块打包后丢失BOOT-INF的问题,主要由于以下两个原因因为的。
1).子模块未制定父模块。
通常模块都应该包含父模块的配置。例如:
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.6.13</version>
<relativePath/>
</parent>
2).build里未添加spring-boot-maven-plugin插件
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<version>${spring-boot.version}</version>
<executions>
<execution>
<goals>
<goal>repackage</goal>
</goals>
</execution>
</executions>
</plugin>
3).删除skip属性
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<version>${spring-boot.version}</version>
<configuration>
<mainClass>com.hqyj.server.ServerApplication</mainClass>
<!--
<skip>true</skip>
-->
</configuration>
<executions>
<execution>
<id>repackage</id>
<goals>
<goal>repackage</goal>
</goals>
</execution>
</executions>
</plugin>