← 返回首页
Springboot打包后jar丢失BOOT-INF问题
发表时间:2023-05-29 06:48:42
Springboot打包后jar丢失BOOT-INF问题

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>