关于vhr项目部署所遇到的问题总结,Failed to execute goal org.apache.maven.plugins:maven-surefire-plugin

本文档记录了一位后端开发者在部署包含Vue前端和Java后端的项目时遇到的问题及解决方案。涉及到Vue搭建、Maven构建、MySQL、Redis、RabbitMQ的Docker安装,以及解决maven-surefire-plugin错误和Flyway数据库版本管理。通过Flyway自动初始化数据库,并管理数据库版本更新。最终实现前端静态资源与后端服务的整合部署。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

从gitee或者github上拉取项目后,大概是下面这样的一个目录结构:
在这里插入图片描述
首先声明,个人是纯后端开发人员,对vue仍处于了解阶段,根据我的经验,找到前端同事协助并启动了前端项目,当然得安装node.js和vue脚手架这些,本来想着启动看看系统页面长什么样子,但碍于权限问题,折腾半天也没弄出什么名堂来。然后转攻后端项目。

项目需要用到maven构建,mysql,redis,rabbitmq,三者通过docker可以快速安装并使用,本账号也有一些文章可以参考,maven install成功后,启动遇到的第一个问题就是:Failed to execute goal org.apache.maven.plugins:maven-surefire-plugin,这个通过修改pom文件就得到了解决。
在这里插入图片描述

红色框中的内容,原项目没有,加上就不会报上面的错,重新编译后启动又遇到一个新的问题:Found non-empty schema(s) “PUBLIC” but no schema history table,这个配置一下application.yml文件也可以解决。
在这里插入图片描述
红色框中的内容为新加内容,原项目中没有。
对了,mysql数据库中,我自己新建了一个名为vhr的数据库,并执行了项目中的sql脚本,初始化表结构及数据。这次启动后端项目就没有什么问题了。

我傻傻的同时启动了前端项目和后端项目,访问前端的8080端口,可以正常访问,验证码也能够刷新出来的,但是,成功登陆后,菜单栏为空,没有任何导航地址,一开始我以为是前后端通信的问题,最后发现,直接访问后端的8081端口即可。

这个项目虽然是前后端分离,但部署的时候,原创者npm run build对前端项目打包后,拷贝到了vhr-web的resources/static目录下,所以直接启动vhr-web项目即可。vhr-web为一个单独的module,但pom文件中添加了vhr-service依赖,后者又添加了mapper依赖,再关联上了model依赖,第一次看到这种目录还是挺别扭的。

最后,上面提到的flyway相关的问题,其实是一个数据库版本管理工具。我们把刚才创建的vhr数据库删掉,因为里面已经初始化了所有的表结构,再重新创建一个新的数据库,名字还是vhr,接着,再vhr-web的pom中添加flyway依赖:

<dependency>
    <groupId>org.flywaydb</groupId>
    <artifactId>flyway-core</artifactId>
</dependency>

前面配置了flyway相关的参数就不再配置了,重新启动项目。
在这里插入图片描述
flyway自动根据sql初始化数据库,并且,创建了一张名为flyway_schema_history的表来记录我们的数据库更新日志。打开该表可见:
在这里插入图片描述
当前最新的版本为1,如果想要更新数据库,可在db.migration放入更新的版本sql脚本,项目启动后会自动更新,以此来有效管理项目中数据库的版本,得到及时的更新。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

穿条秋裤到处跑

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

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

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

打赏作者

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

抵扣说明:

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

余额充值