记打包的2个错误-项目BotBattle
记打包项目的 2 个错误
0.概述
主目录backendcloud
下有 3 个项目backend
、botrunningsystem
、matchingsystem
│
├─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