解决spring-boot-maven-plugin插件打包,springboot启动时报找不到主main问题

摘要:
所以就怀疑是不是spring-boot-maven-plugin打包插件里些配置没有指定导致的?二:spring-boot-maven-plugin插件5种goal类型的说明:spring-boot:repackage,最主要包一个goal。在mvnpackage之后,再次打包可执行的jar/war,同时保留mvnpackage生成的jar/war为.originspring-boot:run,运行SpringBoot应用spring-boot:start,在mvnintegration-test阶段,进行SpringBoot应用生命周期的管理spring-boot:stop,在mvnintegration-test阶段,进行SpringBoot应用生命周期的管理spring-boot:build-info,生成Actuator使用的构建信息文件build-info.properties

一:遇到的问题及解决方法

最近在搭建一个新项目时,使用spring-boot-maven-plugin插件打包,springboot项目在发布后启动时遇到找不到主main问题。

遇到这个问题当时感觉本地直接idea里启动springboot好好的,为什么用自动化发布工具发布后怎么就出现这个问题了呢?

就到线上打好的包解压看MANIFEST.MF文件里的内容如下:

Manifest-Version: 1.0
Archiver-Version: Plexus Archiver
Built-By: spy
Created-By: Apache Maven 3.3.9
Build-Jdk: 1.8.0_74

只有一些简单的内容并没有启动类,主类什么的?所以报那个找不到主main就非常明确了。所以就怀疑是不是spring-boot-maven-plugin打包插件里些配置没有指定导致的?

后来通过网上查询与看官网的文档还真是这个原因:

我们这个的原因的是由于在spring-boot-maven-plugin插件里没有指定goal导致的:

出现在问题时的配置是这个样的:

<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<version>2.1.4.RELEASE</version>
<configuration>
<fork>true</fork>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.8.1</version>
<configuration>
<source>1.8</source>
<target>1.8</target>
</configuration>
</plugin>
</plugins>

指定goal后解决问题对应的配置如下:

<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<version>2.1.4.RELEASE</version>
<executions>
<execution>
<goals>
<goal>repackage</goal>
</goals>
</execution>
</executions>
<configuration>
<fork>true</fork>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.8.1</version>
<configuration>
<source>1.8</source>
<target>1.8</target>
</configuration>
</plugin>
</plugins>
修改goal后再去看MANIFEST.MF内容如下:

Manifest-Version: 1.0
Archiver-Version: Plexus Archiver
Built-By: spy
Start-Class: com.XX.Crm2cApplication
Spring-Boot-Classes: BOOT-INF/classes/
Spring-Boot-Lib: BOOT-INF/lib/
Spring-Boot-Version: 2.1.4.RELEASE
Created-By: Apache Maven 3.3.9
Build-Jdk: 1.8.0_74
Main-Class: org.springframework.boot.loader.JarLauncher

内容多出了,Main-Class和Start-Class至此遇到的问题解决了。

二:spring-boot-maven-plugin插件5种goal类型的说明:

spring-boot:repackage,最主要包一个goal。在mvn package之后,再次打包可执行的jar/war,同时保留mvn package生成的jar/war为.origin
spring-boot:run,运行Spring Boot应用
spring-boot:start,在mvn integration-test阶段,进行Spring Boot应用生命周期的管理
spring-boot:stop,在mvn integration-test阶段,进行Spring Boot应用生命周期的管理
spring-boot:build-info,生成Actuator使用的构建信息文件build-info.properties

免责声明:文章转载自《解决spring-boot-maven-plugin插件打包,springboot启动时报找不到主main问题》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇开源物联网平台(Thingsboard)-运行ognl下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

一次linux启动故障记录

故障背景: 在2.6.32升级内核之后,出现多台设备启动失败,失败的全部都是ssd作为系统盘的机器,bios引导之后,屏幕就黑了,没有打印。 一开是以为是mbr损坏了,所以将启动盘挂载到其他服务器上,结果发现mbr和升级之前备份的mbr是一样的,而且和升级后能正常启动的mbr也是一样的。 排查到此,没能继续跟踪,找专业的os团队同事蒙恩排查,结论记录如下:...

spring boot服务状态监控+shell远程连接服务

1.在对应服务中引入对应spring boot起步依赖 2.在application.yml中加入对应配置 3.登录相关路径调用相关接口查看服务运行状态 http://localhost:30001/xxx 下表是相关监控接口 4.使用远程ssh工具监控服务状态 控制台中会打印出连接shell的密码,默认用户名:user 在远程连接工具中输入用户...

劳德巴赫下载kernel和文件系统时问题

用劳德巴赫下载 kernel  dtb rootfs BOOT.bin 报错(记了个大概) Bad CRC Ramdisk image is corrupt or invalid 记得之前有人和我说rootfs有大小限制,但是查了下地址空间,DDR3 1G 而我将ltp-ddt和mtd-utils全部编进去,也才57MB,不应该放不下的。 Bad CRC...

Springboot 返回 jsp

1、配置pom.xml 1 <!--配置jsp jstl的支持--> 2 <dependency> 3 <groupId>javax.servlet</groupId> 4 <artifactId>jstl...

尝鲜党:Nexus5、6刷安卓M教程

说明:   进入recovery的命令:adb reboot recovery        进入bootloader的命令:adb reboot bootloader 概述 F:Nexus5AndroidMhammerhead-MPZ44Q>fastboot flash bootloader bootloader bootlo ader-hamm...

Android开发 -- Bootloader

本文转载自:http://blog.csdn.net/jmq_0000/article/details/7378348 LK是什么            LK 是 Little Kernel 它是 appsbl (Applications ARM Boot Loader)流程代码  ,little kernel 是小内核小操作系统。           ...