一二三应用开发平台部署文档——开发环境搭建手册

背景

开源平台在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实际的版本号。
image.png

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版)。
image.png
只介绍几条常用的命令
设置国内镜像
默认情况下,是连接国外的源,下载安装会比较慢,需要调整为国内的镜像,具体如下操作:

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
image.png

显示已安装版本清单
nvm list,列出电脑上已安装的nodejs版本,如下图所示
image.png
同时清晰地展现了当前生效的是哪个版本的nodejs。
切换生效的nodejs版本
nvm use 【version】,结合list命令,查看有哪些版本,然后使用use命令切换生效。
image.png
我本地环境使用的是16.14.2。

克隆项目

本地已安装git和图形化客户端TortoiseGit工具,版本无限制。
访问平台开源地址主页面,https://gitee.com/popsoft/abc-development-platform,点击下图的克隆/下载,选择https模式,点击复制,将仓库地址https://gitee.com/popsoft/abc-development-platform.git复制到剪贴板,如下图所示:
image.png

然后在本地磁盘空白处,右键菜单,选择Clone
image.png
弹出如下窗口,剪贴板中的url会自动填充,其他保持默认即可,点击ok即开始把代码从远程Gitee仓库拉取到本地磁盘。
image.png
成功完成如下图所示:
image.png

初始化数据库

去本地磁盘目录,如E:\dev\remote\abc-development-platform\resource下,找到
init.sql,这是一个包括创建数据库、创建表和初始化表数据的完整脚本。
放到你熟悉的任意一个MySQL客户端工具里执行,我用的是HeidiSQL。
执行完成后会出现一个名为“abc”的数据库。
image.png

前端搭建

使用VSCode,打开文件夹,在弹出对话框中选择platform-web目录,如下图所示:
image.png
这里并没有使用npm,而用的是pnpm,如果尚未安装,需要执行npm install pnpm -g,安装pnpm包,如已安装,该步跳过。
vscode加载完目录后能智能识别和解析,在左侧npm脚本面板里选择第一条命令,则会执行pnpm install命令
image.png
这个时间略长,报出来一些组件版本过时等警告可以忽略,前端的组件依赖版本比较混乱。
image.png
执行结束会提示如上图中的红框标记的错误,不用理会,因为我把husky主动移除导致的,不影响系统正常运行。
接下来进行前端最后一步,点击npm脚本面板中的第二行,执行dev命令即可
image.png
image.png
使用浏览访问localhost:4000,出现如下登录页面,说明前端搭建完成,正常运行。
image.png
此时点击登录会报错,因为后端还没有搭建和启动。

后端搭建

使用IDEA打开根目录下的pom.xml,自动加载模块。
打开Project Structure,确认下jdk版本是否变成了空,如为空,则选择一个本地的jdk1.8版本。
image.png
打开settring,导航到maven设置,确定本地库位置与自己开发环境一致,否则修改。
image.png
然后使用maven面板,点击重新加载所有项目,则maven去远程仓库里拉取依赖的jar包。
image.png
然后执行下maven的install命令。
image.png

打开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=true
    username: root
    password: root
    # redis设置
  redis:
    host: localhost
    port: 6379
    password:

最后一步,启动platform-boot-starter-demo\src\main\java\tech\abc\platform\boot目录下的PlatformBootApplication类的main方法,中间如有报错,无非是数据库连接账号密码、redis密码有误,或者是端口冲突,参照错误提示调整即可。
最后,成功启动如下:
image.png
补充说明
系统的下拉数据源,也即数据字典使用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
欢迎收藏、点赞、评论,你的支持是我前行的动力。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/253830.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

在金属/绝缘体/p-GaN栅极高电子迁移率晶体管中同时实现大的栅压摆幅和增强的阈值电压稳定性

标题:Simultaneously Achieving Large Gate Swing and Enhanced Threshold Voltage Stability in Metal/Insulator/p-GaN Gate HEMT (IEDM2023) 摘要 摘要:对于增强型GaN功率晶体管的发展,栅压摆幅和阈值电压稳定性通常是互相排斥的。本文展…

c++11--保证稳定性和兼容性

保证稳定性和兼容性 1.变长参数宏定义及__VA_ARGS__ C99中&#xff0c;可使用变长参数空定义&#xff0c;即在宏定义参数列表最后一个参数为省略号。 预定义宏__VA_ARGS__可在宏定义实现部分替换省略号代表的内容。 #include <stdio.h> #define LOG(...) {\fprintf(std…

RTD2513A RTD2513BA 1VGA+2HDMI转双通道1080P LVDS 显示驱动芯片介绍

转载&#xff1a; 易显LCD显示方案设计www.rtddisplay.com

基于Java+Swingt学生信息管理系统

基于JavaSwing学生信息管理系统 一、系统介绍二、功能展示四、其他系统实现五、获取源码 一、系统介绍 1.用户登陆&#xff1a;在帮助按钮处&#xff0c;可以查看登陆账号及密码&#xff1a; 账号admin,密码123456 在未输入的情况下&#xff0c;会提示用户名不能为空&#xff…

git 切换远程地址分支 推送到指定地址分支 版本回退

切换远程地址 1、切换远程仓库地址&#xff1a; 方式一&#xff1a;修改远程仓库地址 【git remote set-url origin URL】 更换远程仓库地址&#xff0c;URL为新地址。 git remote set-url https://gitee.com/xxss/omj_gateway.git 方式二&#xff1a;先删除远程仓库地址&…

正点原子驱动开发BUG(一)--SPI无法正常通信

目录 一、问题描述二、讲该问题的解决方案三、imx6ull的spi适配器驱动程序控制片选分析3.1 设备icm20608的驱动程序分析3.2 imx的spi适配器的驱动程序分析 四、BUG修复测试五、其他问题 一、问题描述 使用正点的im6ull开发板进行spi通信驱动开发实验的时候&#xff0c;主机无法…

Redis Set类型

集合类型也是保存多个字符串类型的元素的&#xff0c;但和列表类型不同的是&#xff0c;集合中 1&#xff09;元素之间是无序的 2&#xff09;元素不允许重复 一个集合中最多可以存储2的32次方个元素。Redis 除了支持集合内的增删查改操作&#xff0c;同时还支持多个集合取交…

【ZYNQ学习】PL第一课

这节课讲什么&#xff1f; 这节课的名字本来是想写为LED&#xff0c;但这一课里除了LED也有按键&#xff0c;又想换为GPIO控制&#xff0c;但关于PL的GPIO控制&#xff0c;不应该这么草率和简单&#xff0c;而且这一课有很多和ZYNQ或者PL关联性不强的东西要说。 所以我写了删删…

基于AT89C52单片机的计算器设计与仿真

点击链接获取Keil源码与Project Backups仿真图&#xff1a; https://download.csdn.net/download/qq_64505944/88637995?spm1001.2014.3001.5503 源码获取 B 源码仿真图课程设计51 摘 要 计算器一般是指“电子计算器”,能进行数学运算的手持机器&#xff0c;拥有集成电路芯…

UE4 去除重复纹理

如果直接连的话&#xff0c;效果如下&#xff1a; 就存在很多重复的纹理&#xff0c;如何解决这个问题呢&#xff1f; 将同一个纹理&#xff0c;用不同的Tilling&#xff0c;将Noise进行Lerp两者之间&#xff0c;为什么要这么做呢&#xff1f;因为用一个做清晰纹理&#xff0c;…

适用于 Windows 和 Mac 的 10 款最佳照片恢复软件(免费和付费)

丢失照片很容易。这里点击错误&#xff0c;那里贴错标签的 SD 卡&#xff0c;然后噗的一声&#xff0c;一切都消失了。值得庆幸的是&#xff0c;在技术领域&#xff0c;你可以纠正一些错误。其中包括删除数据或格式化错误的存储设备。 那么&#xff0c;让我们看看可用于从 SD …

人工智能与自动驾驶:智能出行时代的未来之路

一、前言 首先&#xff0c;我们先来说下什么是人工智能&#xff0c;人工智能&#xff08;Artificial Intelligence&#xff0c;简称AI&#xff09;是一门研究如何使计算机系统能够模拟、仿真人类智能的技术和科学领域。它涉及构建智能代理&#xff0c;使其能够感知环境、理解和…

Unity中URP下的菲涅尔效果实现(个性化修改)

文章目录 前言一、我们修正一下上篇文章中&#xff0c;可能遗留的Bug1、N向量 变为 单位向量2、使颜色范围在合理区间 二、实现菲涅尔效果强弱可自定义调节三、修改菲涅尔效果颜色1、在属性面板定义颜色属性2、在常量缓冲区申明该参数3、在片元着色器中&#xff0c;用颜色和菲涅…

【日积月累】Mysql性能优化

目录 【日积月累】Mysql性能优化 1.前言2.MySql性能优化的主要方面2.1硬件和操作系统成面优化2.2架构设计层优化&#xff08;表结构&#xff09;2.3程序配置优化2.5表结构及索引优化2.4sql执行优化 3.总结4.参考 文章所属专区 积月累 1.前言 MySQL是一种常用的开源关系型数据…

【PHP入门】1.1-PHP初步语法

-PHP语法初步- PHP是一种运行在服务器端的脚本语言&#xff0c;可以嵌入到HTML中。 1.1.1PHP代码标记 在PHP历史发展中&#xff0c;可以使用多种标记来区分PHP脚本 ASP标记&#xff1a; <% php代码 %>短标记&#xff1a; <? Php代码 ?>&#xff0c;以上两种…

【TB作品】51单片机 实物+仿真-电子拔河游戏_亚博 BST-M51

代码工程。 http://dt4.8tupian.net/2/28880a66b12880.pg3这段代码是用于一个数字拔河游戏的嵌入式系统&#xff0c;采用了基于8051架构的单片机&#xff0c;使用Keil C51编译器。 主要功能包括&#xff1a; 数码管显示&#xff1a;使用了四个数码管&#xff08;通过P2的控制…

从零开始在Linux服务器配置并运行YOLO8+Web项目

✅作者简介&#xff1a;大家好&#xff0c;我是 Meteors., 向往着更加简洁高效的代码写法与编程方式&#xff0c;持续分享Java技术内容。 &#x1f34e;个人主页&#xff1a;Meteors.的博客 &#x1f49e;当前专栏&#xff1a; 神经网络&#xff08;随缘更新&#xff09; ✨特色…

js基础入门

先来一点js基础&#xff0c;其实js大部分的时候都在处理对象或者数组。 对象四个基本操作&#xff1a;增删改查 掌握元素的增删改查&#xff0c;了解如何拷贝&#xff0c;深拷贝和浅拷贝的区别。详情见代码 <script>//创建对象一共有三种赋值声明的语法let obj{} //赋值…

Ps:动作 - 基础篇

Ps 中的动作 Action可以让你自动、连续地完成多个操作&#xff0c;包括基础的调色、复杂的合成等。对于经常要执行的任务&#xff0c;使用动作&#xff0c;可大大提高工作效率。 Ps菜单&#xff1a;窗口/动作 Window/Action 快捷键&#xff1a;Alt F9 ◆ ◆ ◆ 认识动作面板…

如何用Python向图像中加入噪声

我们在做机器视觉项目的过程中&#xff0c;有的时候需要向图像中加入噪声。Pytorch本身不支持类似的功能&#xff0c;如果自己写的话&#xff0c;不但麻烦&#xff0c;而且容易出错。好在skimage支持这个功能。代码如下&#xff1a; import skimage import matplotlib.pyplot …