背景
开源平台在ReadMe文档中简要描述了如何部署与启动以及重要注意事项,有小伙伴私信我希望提供一个详细具体的部署说明,然后联想到自己出于学习或研究目的,去搭建一些开源项目时,面对简要的说明也经常遇到障碍,比如报错了难以定位原因,反复尝试花费大量时间精力,甚至于发生折腾半天发现最终无法正常运行起来而最终放弃的情况……
基于上述原因,今天来详细说说平台如何搭建开发环境,包括注意事项,这部分内容不仅适用于本平台,也适用于大部分基于主流开源技术栈构建出来的平台。
如在搭建开发环境时遇到问题,请留言评论,我会及时回复。
环境准备
MySQL
早期的时候使用的是5.7.36,随着官方停止运维,更换到了8.0+,平滑升级,未发现需要调整的地方,当前我本地的版本是8.2.0.
Redis
当前平台使用Redis对数据字典进行了缓存,没有使用redis某些版本特别是高版本的特性,理论上对Redis版本无严格要求,我本地的Redis是一个较低的版本3.0.504。
导航到Redis安装目录下,运行redis-cli.exe,可以输入命令info server来确认已安装的Redis实际的版本号。
IDE
IDE属于基本功,就没必要详说了。
前端推荐使用VSCode,后端推荐IDEA。
后续操作以这二者为例进行说明。
nodejs
nodejs得好好说说。
前端相对后端比较灵活,也比较杂乱,规范性不是那么强。前端的js库、组件对nodejs依赖性比较强,如出现版本不兼容情况,报的错误也乱七八糟,难以排查。
此外,不同的前端框架和项目对nodejs的版本需求是不一样的,并且nodejs的高版本往往与低版本兼容。
这种情况下,开发环境存在使用不同nodejs版本的需求,此时,不建议直接安装nodejs,通过卸载安装方式来实现版本的切换,过于繁琐。
对于以上问题,已有应对方案,即nvm。
nvm全英文也叫node.js version management,是一个nodejs的版本管理工具,为了解决node.js各种版本存在不兼容现象的问题,可以通过它可以安装和切换不同版本的node.js。
下载页面https://github.com/coreybutler/nvm-windows/releases
最新版本1.1.12,建议直接下载windows安装包,下载地址https://github.com/coreybutler/nvm-windows/releases/download/1.1.12/nvm-setup.exe,安装过程会自动配置环境变量。如果在安装nvm之前电脑上已经装过nodejs,则会自动检测并提示是否要纳入nvm管理。
安装完成后,打开命令窗口,执行 nvm,会显示版本信息及使用说明(我本地装的是1.1.11版)。
只介绍几条常用的命令
设置国内镜像
默认情况下,是连接国外的源,下载安装会比较慢,需要调整为国内的镜像,具体如下操作:
nvm node_mirror https://npm.taobao.org/mirrors/node/
nvm npm_mirror https://npm.taobao.org/mirrors/npm/
以上两条命令也可以通过直接修改配置文件的方式实现,具体如下:
在nvm安装目录下,找到setting.txt,打开编辑,指向国内淘宝镜像地址
root: e:\tool\nvm
path: e:\tool\nodejs
node_mirror:https://npm.taobao.org/mirrors/node/
npm_mirror:https://npm.taobao.org/mirrors/npm/
下载nodejs版本
nvm install lastest
显示已安装版本清单
nvm list,列出电脑上已安装的nodejs版本,如下图所示
同时清晰地展现了当前生效的是哪个版本的nodejs。
切换生效的nodejs版本
nvm use 【version】,结合list命令,查看有哪些版本,然后使用use命令切换生效。
我本地环境使用的是16.14.2。
克隆项目
本地已安装git和图形化客户端TortoiseGit工具,版本无限制。
访问平台开源地址主页面,https://gitee.com/popsoft/abc-development-platform,点击下图的克隆/下载,选择https模式,点击复制,将仓库地址https://gitee.com/popsoft/abc-development-platform.git复制到剪贴板,如下图所示:
然后在本地磁盘空白处,右键菜单,选择Clone
弹出如下窗口,剪贴板中的url会自动填充,其他保持默认即可,点击ok即开始把代码从远程Gitee仓库拉取到本地磁盘。
成功完成如下图所示:
初始化数据库
去本地磁盘目录,如E:\dev\remote\abc-development-platform\resource下,找到
init.sql,这是一个包括创建数据库、创建表和初始化表数据的完整脚本。
放到你熟悉的任意一个MySQL客户端工具里执行,我用的是HeidiSQL。
执行完成后会出现一个名为“abc”的数据库。
前端搭建
使用VSCode,打开文件夹,在弹出对话框中选择platform-web目录,如下图所示:
这里并没有使用npm,而用的是pnpm,如果尚未安装,需要执行npm install pnpm -g,安装pnpm包,如已安装,该步跳过。
vscode加载完目录后能智能识别和解析,在左侧npm脚本面板里选择第一条命令,则会执行pnpm install命令
这个时间略长,报出来一些组件版本过时等警告可以忽略,前端的组件依赖版本比较混乱。
执行结束会提示如上图中的红框标记的错误,不用理会,因为我把husky主动移除导致的,不影响系统正常运行。
接下来进行前端最后一步,点击npm脚本面板中的第二行,执行dev命令即可
使用浏览访问localhost:4000,出现如下登录页面,说明前端搭建完成,正常运行。
此时点击登录会报错,因为后端还没有搭建和启动。
后端搭建
使用IDEA打开根目录下的pom.xml,自动加载模块。
打开Project Structure,确认下jdk版本是否变成了空,如为空,则选择一个本地的jdk1.8版本。
打开settring,导航到maven设置,确定本地库位置与自己开发环境一致,否则修改。
然后使用maven面板,点击重新加载所有项目,则maven去远程仓库里拉取依赖的jar包。
然后执行下maven的install命令。
打开abc-development-platform\platform-boot-starter-demo\src\main\resources目录下的application-dev.yml文件,确认里面的数据库连接、账号、密码以及redis的端口和密码与自己本地环境一致。
server:port: 8080
#数据连接
spring:datasource:# 数据库设置url: jdbc:mysql://localhost:3306/abc?useUnicode=true&characterEncoding=utf-8&useSSL=false&allowPublicKeyRetrieval=true&serverTimezone=Asia/Shanghai&allowMultiQueries=trueusername: rootpassword: root# redis设置redis:host: localhostport: 6379password:
最后一步,启动platform-boot-starter-demo\src\main\java\tech\abc\platform\boot目录下的PlatformBootApplication类的main方法,中间如有报错,无非是数据库连接账号密码、redis密码有误,或者是端口冲突,参照错误提示调整即可。
最后,成功启动如下:
补充说明
系统的下拉数据源,也即数据字典使用redis缓存,按上述步骤构建后,部分查询界面不显示中文名称,可在系统登录后,访问系统管理-》系统维护菜单下的“重建缓存”按钮,系统会自动将数据库的字典数据写入到redis中。
接口平台对接客户端
cip-client是一个模拟的接口平台客户端,是一个独立的springboot,相当于第三方系统,有自己独立的数据库,数据库脚本参见\cip-client\src\main\resources\init.sql
minio启用说明
平台对于文件存储除了支持本地磁盘模式外,还实现了minio对象存储组件的集成。如需启用,需安装minio服务端,版本2021-04-22T15-44-28Z(最后一个基于apache 2.0开源协议的版本),并修改平台配置文件。
开源平台资料
平台名称:一二三开发平台
简介: 企业级通用开发平台
设计资料:csdn专栏
开源地址:Gitee
开源协议:MIT
欢迎收藏、点赞、评论,你的支持是我前行的动力。