SpringBoot部署子工程java -jar启动时报错:xxxxxxx.jar中没有主清单属性

1. 问题背景

  1. 项目结构:SpringBoot搭建的父子工程
  2. 本地开发环境:windows环境启动子工程正常
  3. 服务器部署环境:linux环境采用java -jar的方式进行服务器部署时,启动报错:xxxxxxx.jar中没有主清单属性

2. 问题原因

查阅资料可得,没有指定Main-Class导致。

解压jar包,进入META-INF目录,查看MANIFEST.MF文件,里面确实没有指定Start-Class和Main-Class

3. 问题处理

在子工程的pom.xml文件中添加如下配置:
说明:
(1)<includeSystemScope>为true:代表maven打包时会将外部引入的jar包打包到项目jar,在服务器上项目才能运行,不加此配置,本地可以运行,因为本地可以再lib下找到外部包,但是服务器上jar中是没有的;
(2)<mainClass>: 指定入口主方法;
(3) <goal>repackage</goal>:个人认为重新打包会自动检测到入口类。本项目必须指定,不指定就会报没有主清单属性

    <build>
        <plugins>
            <!-- 该插件的主要功能是进行项目的打包发布处理 -->
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
                <!-- 设置程序执行的主类 -->
<!--                <configuration>
                    <includeSystemScope>true</includeSystemScope>
                    <mainClass>${main.class}</mainClass>
                </configuration>-->
                <executions>
                    <execution>
                        <goals>
                            <goal>repackage</goal>
                        </goals>
                    </execution>
                </executions>
            </plugin>
        </plugins>
    </build>

4. 结果

重新打包执行java -jar 启动成功

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值