Spring Boot微服务搭建框架,打包提示没有主清单属性,实际上是没有引入maven插件

<build>
   <plugins>
        <plugin>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-maven-plugin</artifactId>
            <executions>
                <execution>
                    <goals>
                        <goal>repackage</goal>
                    </goals>
                </execution>
            </executions>
        </plugin>
    </plugins>
</build>

!!! 请仔细检查下是否导入成功,我用的 idea 2021.1版本,经常出现依赖导入不了的问题,推荐大家用 IDEA 2020.1版本

解释

springboot打包jar中包含了三个文件夹:BOOT-INF,META-INF,org,可以把jar包解压到文件夹下查看,
其中META-INF文件夹下有一个MANIFEST.MF文件,该文件指明了程序的入口以及版本信息等内容,如下

Manifest-Version: 1.0
Spring-Boot-Classpath-Index: BOOT-INF/classpath.idx
Archiver-Version: Plexus Archiver
Built-By: txlc
Spring-Boot-Layers-Index: BOOT-INF/layers.idx
Start-Class: com.txlc.user.UserCenterApplication
Spring-Boot-Classes: BOOT-INF/classes/
Spring-Boot-Lib: BOOT-INF/lib/
Spring-Boot-Version: 2.5.7
Created-By: Apache Maven 3.3.9
Build-Jdk: 1.8.0_172
Main-Class: org.springframework.boot.loader.JarLauncher
  • Main-Class代表了Spring Boot中启动jar包的程序
  • Start-Class属性就代表了Spring Boot程序的入口类,这个类中应该有一个main方法
  • Spring-Boot-Classes代表了类的路径,所有编译后的class文件,以及配置文件,都存储在该路径下
  • Spring-Boot-Lib表示依赖的jar包存储的位置

这些值都是SpringBoot打包插件会默认生成的,如果没有这些属性,SpringBoot程序自然不能运行,就会报错:jar中没有主清单属性

如果解决了你的问题,右下角在这里插入图片描述

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐