记打包的2个错误-项目BotBattle

记打包项目的 2 个错误

0.概述

主目录backendcloud下有 3 个项目backendbotrunningsystemmatchingsystem

 │
 ├─backend
 │
 ├─botrunningsystem
 │
 └─matchingsystem

将以上 3 个项目打包成.jar文件并传到服务器运行:

java -jar backend-0.0.1-SNAPSHOT.jar
java -jar matchingsystem-0.0.1-SNAPSHOT.jar
java -jar botrunningsystem-0.0.1-SNAPSHOT.jar

1.spring-boot-maven-plugin 版本

1.1 问题

在打包 maven 项目时报错:

org/springframework/boot/maven/RepackageMojo has been compiled by a more recent version of the Java Runtime (class file version 61.0), this version of the Java Runtime only recognizes class file versions up to 52.0

1.2 添加版本号

对应的模块的pom.xml中的<build>标签里,加上合适的版本号

<groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-maven-plugin</artifactId>
    <!--在此处加上版本号-->

我真的菜的要死了 建议,直接用和 springboot 相同版本号。而我使用的 springboot 版本号是3.2.3,如此尝试并不奏效

根据 西凉的悲伤 的博客介绍,使用 Xtools 打包,该版本号<version>2.6.0</version>可行!

2.总项目

2.1 问题

在服务器上运行java -jar test-0.0.1-SNAPSHOT.jar
报错:

no main manifest attribute, in test-0.0.1-SNAPSHOT.jar

2.2 核验主类

发生原因是 java 找不到主类

一般情况下,java 打包成 jar 包需要在MANIFEST.MF中指定 Main-Class 项,以便运行java -jar xxx.jar时找到对应的主类。

test-0.0.1-SNAPSHOT.jar解压,
查看 META-INF 目录下的MANIFEST.MF文件,理应包含Start-class项。

2.3backendcloud 修改标签

Makisekurisu_4 指出,应在主目录backendcloud(也就是总项目)的pom.xml文件中如下修改

                <configuration>
                    <mainClass>com.kob.backendcloud.BackendcloudApplication</mainClass>
                    <skip>true</skip>  //这个标签被标记成true之后,子项目打包的时候全部信息都没有了.
                    //解决方案: 删除这个标签,或者是改成false
                </configuration>

<skip>改成true后,果然 META-INF 目录下的MANIFEST.MF文件包含Start-class

服务器成功执行以下三条命令,问题解决!
java -jar backend-0.0.1-SNAPSHOT.jar
java -jar matchingsystem-0.0.1-SNAPSHOT.jar
java -jar botrunningsystem-0.0.1-SNAPSHOT.jar

posted @ 2024-03-30 15:39  xiuzi  阅读(29)  评论(0编辑  收藏  举报