【HOJ部署系列】后端代码打包(在判题机单独部署时需要将JudegServer打成Jar包)

1、前言

        楼主准备自己开发一个OJ系统,从网络上搜索各大开源OJ,用本专栏记录部署过程,从中学习经验,为开发自己的OJ做准备;HOJ是其中比较好的一个开源OJ参考,本系列为HOJ部署系列。本文介绍在打包后端代码时所遇到的问题,在部署HOJ判题机,二开HOJ后端之后,都涉及如何打包HOJ后端代码发布。

        HOJ后端代码如何运行起来,可参考本系列另一篇文章。

HOJ官网地址:HOJ官网,开源OJ

源代码地址:HOJ: ⚡🔥Hcode Online Judge(HOJ)🔥⚡:基于SpringCloud与Vue前后端分离,分布式架构的在线测评平台OJ (An open source online judge system base on SpringBoot, Springcloud Alibaba and Vue.js !)

Docker部署源代码:HOJ-Deploy: HOJ的部署仓库,基于docker-compose的一键化部署,支持单机部署及分布式部署

如果以上代码官网失效或不再开源,可私信楼主获取。

2、打包流程

        楼主曾尝试直接根据HOJ的官方文档进行打包,但提示mvn命令不存在,估计是没配置环境变量,后来经过楼主一番测试,以下流程可走通。

2.1 环境准备

        先下载好源码,用idea工具打开hoj-springboot项目,打开后目录长这样:

楼主是先将后端项目配置能运行起来之后,又打包的;如何配置后端项目能够运行起来,参考另一篇文章。

理论上只要不运行,配置不修改也没关系,可以直接打包尝试一下;

因为如果不改配置(修改成自己可用的mysql、redis、nacos连接信息),即便打包成功,这个jar包也是不可用的。

2.2 版本确认

楼主的IDEA是2021.3,JDK是1.8,maven是3.6.0,可以不着急改版本,如果有遇到其他错误,再看是否是版本问题。

项目版本都调整为jdk1.8

在项目上右键->Open Module Settings

以下四个Modules的language level都改为8

SDK也确认是否为8 

2.3 尝试编译

在项目右侧Maven栏下,先点hoj-springboot->Lifecycle下的clean再点package

如果右侧没有Maven请自行搜索如何调出来Maven窗口

注意是点hoj-springboot下的package,不要点子模块的,因为子模块有依赖,单独package子模块并不成功。

2.4 报错解决:RepackageMojo ..61.0..52.0

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

<plugin>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-maven-plugin</artifactId>
    <version>2.2.6.RELEASE</version>
    <configuration>
        <fork>true</fork>
        <addResources>true</addResources>
    </configuration>
</plugin>

具体位置在这里:

参考:https://www.cnblogs.com/stackfing/p/16938441.html

2.5 删除仓库重新下载Maven依赖

上面配置了maven plugin之后楼主的idea一直标红,刚开始一直以为有问题,实际上已经成功了;如果是真的依赖下载不下来,则可以尝试定位到仓库目录,把相关的plugin依赖删掉,再重新下载尝试。

以下是楼主的目录,把这些都删掉,再尝试。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

随风浪仔

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值