解决spring-boot-maven-plugin插件打包,springboot启动时报。。。

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

解决spring-boot-maven-plugin插件打包,springboot启动时
报。

⼀:遇到的问题及解决⽅法
最近在搭建⼀个新项⽬时,使⽤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。

相关文档
最新文档