zoukankan      html  css  js  c++  java
  • 解决spring-boot-maven-plugin插件打包,springboot启动时报找不到主main问题

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

    最近在搭建一个新项目时,使用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

  • 相关阅读:
    PowerShell2.0之Windows排错(二)查看服务依存性
    PowerShell2.0之桌面计算机维护(八)关闭或重启远程计算机
    PowerShell2.0之桌面计算机维护(九)磁盘管理
    PowerShell2.0之桌面计算机维护(五)管理桌面电源设置
    PowerShell2.0之桌面计算机维护(四)审核安全的屏幕保护程序
    PowerShell2.0之桌面计算机维护(七)性能计数器
    PowerShell2.0之Windows排错(三) 检查设备驱动
    Nacos服务分级存储模型、集群、负载均衡
    Nacos安装
    Nacos注册中心之搭建工程
  • 原文地址:https://www.cnblogs.com/songpingyi/p/10874583.html
Copyright © 2011-2022 走看看