跳转到内容

开发快速上手

信息

以下是后端开发从拉取代码到最后上线部署保姆级教程,已经尽力详细的列出开发的每个步骤了。

如果阅读以下内容还是很吃力的话,建议先熟悉下IDEA的基础操作,Git的基础操作,Jenkins基础操作等。切勿在不懂的前提下跳过开发步骤。

建议先了解下项目结构系统架构图,清楚此项目的主要功能和涉及的技术有哪些,方便接下来进行开发

一、准备工作

1️⃣ 开发工具

  1. IDEA (最好是2024以后的版本)
  2. Maven (使用IDEA自带的或自己下载的均可)
  3. JDK (本系统使用的JDK版本是1.8)
  4. Git (无特殊要求,本地可以进行代码的合并,拉取,推送即可)

2️⃣ 账号权限

  1. GitLab仓库权限
    1. 后端代码仓库:点击查看
    2. 前端代码仓库:点击查看
  2. OA账号:OA地址
  3. 禅道账号:禅道地址
  4. 系统登录权限及菜单权限
  5. VPN权限(可选)
  6. Jenkins账号权限(可选)
  7. Kuboard账号权限(可选)
  8. Harbor账号权限(可选)

二、开发步骤

1️⃣ 拉取代码

以后端代码开发为例:

  1. GitLab拉取代码,命令:git clone https://git.jlbry.cn/jlb5/jlb-datax-cloud

  2. GitLabmaster分支基础上创建自己的开发分支。格式:yyyymmdd_yourname_feature,例如:20250512_zhangsan_fixbug

  1. 切换到刚创建的新分支20250512_zhangsan_fixbug

检查下是否已经切换到自己创建的新分支上

2️⃣ 本地启动

  1. 启动的顺序

以下是后端服务启动的顺序说明

提示

启动后,本地访问Nacos的地址是:http://本机IP:8848/nacos/

  1. 其他项说明(本地启动连接的是dev环境,一共有四个环境,分别是dev,test-k8s,uat-k8s,prod-k8s,对于这三个环境的配置后边会讲到)

必须启动基础建设: mysql redis nacos(因为连接的是dev环境,mysql和redis都已经安装好了)

可选启动基础建设: seata(影响分布式事务 默认开启) sentinel(影响熔断限流) monitor(影响监控) xxl-job(影响定时任务)

必须启动应用服务: gateway auth system mdm(影响登录系统后查询主数据)

可选启动应用服务: workflow(工作流) gen(代码生成) job(影响定时任务) material(影响物料使用) intfc(影响接口的查询和接受)

3️⃣ 前端访问

拉取前端代码的步骤和前边一致,这里不再赘述。

具体说一下如何配置前端连接后端的接口地址以及如何本地启动前端项目。

第一步:在前端项目主目录中,修改这个文件:vite.config.js中的如下部分:

提示

其中的 target 需要换成你自己本地的ip地址,这样前端就可以连接到后端接口

第二步:进入到前端代码主目录中

shell
# 进入项目目录
cd ruoyi-ui-vue3

# 安装依赖
npm install --registry=https://registry.npmmirror.com

# 启动服务
npm run dev

第三步:访问前端地址

以上步骤都完成后,就可以访问 http://localhost:80/login (PS:这里的login是必须要加的,因为不加的话会默认跳转到单点的页面,无法跳转到系统的登录页面了)

当看到如下页面时,恭喜你,已经成功在本地启动了项目!!!🎉🎉🎉

4️⃣ 部署上线

  1. 分支合并要求

警告

在本地分支开发完成后(特别注意:在合并分支的时候,记得先pull下远程代码

如果要部署到测试环境,需要切换到dev分支,然后把自己的分支合并到dev分支上,推到远程仓库;

如果要部署到UAT环境,需要切换到uat分支,然后把自己的分支合并到uat分支上,推到远程仓库;

如果要部署到正式环境,需要切换到pre分支,然后把自己的分支合并到pre分支上,推到远程仓库;

其中测试环境和UAT环境推送到对应分支,然后执行Jenkins对应的服务即可,正式环境部署到pre后,需要管理员提交pre分支到master的一个合并,只有合并通过后,才可以执行Jenkins命令。

合并分支的时候,先拉取下远程代码

切换到dev分支,合并自己的分支到dev分支

dev分支推送到远程仓库

  1. 部署上线示意图
  1. 具体上线步骤可见:代码部署

三、配置说明

1️⃣ Nacos配置说明

在开发步骤中,如果Nacos启动成功,可以通过本地ip+8848/nacos进行访问。登录到Nacos后,可以看到如下页面:

其中命名空间的ID和pom.xml中的<profiles.active>是保持一致。

服务的公共配置放到了Data Idapplication-common.yml的配置文件中;

数据库配置放到了Data Iddatasource.yml的配置文件中;

其他的服务都放在了以各自服务为命名的配置文件中,例如:物料服务的配置文件为jlb-datax-cloud-material.yml;接口服务的配置文件为jlb-datax-cloud-intfc.yml

危险

如果Nacos中的配置不是很熟悉,切勿轻易改动任何配置。❗️❗️❗️

如果对使用有任何问题,可到Nacos官网进行学习。

2️⃣ Jenkins配置说明

信息

测试环境编译的分支是test分支

UAT环境编译的分支是uat分支

正式环境编译的分支是master分支

Jenkins已经配置好,如果不是必要切勿随意修改,以下对于其中intfc服务的执行命令做一个解释。 在代码编译完成后,将对代码进行镜像打包,推送到Harbor等操作:

shell
# 检查当前目录是否是 Git 仓库
if [ ! -d .git ]; then
  echo "Error: Not a Git repository!"
  exit 1
fi
COMMIT_SHA=${GIT_COMMIT:0:8}  # 取前 8 位作为短 SHA
# 进入到根目录
cd jlb-datax-cloud-modules/jlb-datax-cloud-intfc/
# 构建 Docker 镜像
docker build --no-cache -t jlb-datax-cloud-intfc:${COMMIT_SHA} -f Dockerfile .
# 登录 Harbor
docker login -u admin -p $HARBOR_PASSWORD 10.0.5.68:8088
# 推送镜像到 Harbor
docker tag jlb-datax-cloud-intfc:${COMMIT_SHA} 10.0.5.68:8088/zymdm/jlb-datax-cloud-intfc:${COMMIT_SHA}
docker push 10.0.5.68:8088/zymdm/jlb-datax-cloud-intfc:${COMMIT_SHA}

其中截取了GIT_COMMIT的前8位作为镜像的版本,便于后续版本升级。

Docker以及Harbor的账号密码已经在Jenkins设置中维护,因此可以直接获取到账号密码,而不是直接使用明文账号和密码。

3️⃣ Harbor配置说明

Harbor中没有太多配置的地方,唯一需要注意的是镜像每天最多会保存5个版本,定时会把旧的版本给删除掉,如下图所示:

之所以这么做是因为防止镜像过多占用系统硬盘空间。其他的不再赘述,如果有使用上的问题,请移步到版本说明中找到Harbor官网或自行百度进行学习。

4️⃣ Kuboard配置说明

警告

Kuboard中的配置依赖于对Docker和K8S的了解,如果对于Docker和K8S基础知识不了解,请先了解下Docker和K8S的基础知识。

如果懒于学习基础知识,只想知道如何使用此软件进行代码部署,那么请移步到代码部署中查看如何使用Kuboard。

由于此软件使用不是简单的描述就能清楚,建议大家在有了Docker和K8S基础的前提上,到Kuboard官网自主学习,此处不再进行系统的讲解。

5️⃣ 系统开发环境说明

本系统一共有四个环境,分别是dev,test-k8s,uat-k8s,prod-k8s,其中dev环境是本地起来后默认使用的环境,剩下的三个环境分别是测试环境,uat环境和正式环境。

具体这四个环境的配置可在项目的pom.xml中找到:

提示

系统环境答疑:

有的同学可能比较疑惑,默认启动的是dev环境,那在部署测试环境,uat环境,正式环境的时候如何进行环境切换呢? 其实环境的切换是在Jenkins编译的时候,指定了环境,如下图中的配置:

其中的-P后边的test-k8s就是说明指定配置为测试环境,这里的test-k8s就是pom.xml中<profile>配置中的<id>的值。

危险

其中test环境是刚开始的时候用jar包的方式启动使用的环境,现已废弃。目前测试环境,uat环境和正式环境都是通过K8S进行部署的。