3.1.2 环境准备(windows版)

一、后端基础环境准备

安装JDK1.8 ,高于1.8_221以上(下载地址见书籍【附件一】

  1. 打开Windows环境变量配置页

    此电脑 => 右键属性 => 系统高级设置 => 环境变量

  2. 配置环境变量

    在用户环境变量中新建变量为JAVA_HOME的项,值为JDK安装之后的路径

3.1.2 环境准备(windows版)

图3-1-27 新建环境变量JAVA_HOM

编辑变量为Path的项添加一个值%JAVA_HOME%\bin

3.1.2 环境准备(windows版)

图3-1-28 添加一个环境变量值%JAVA_HOME%\\bin

  1. PowerShell或者CMD中验证,输出类似信息为安装配置成功

3.1.2 环境准备(windows版)

图3-1-29 验证JAVA是否安装成功

安装 Apache Maven 3.8+ (下载地址见书籍【附件一】

  1. 删除Maven安装目录下的conf/settings.xml

  2. 配置mvn的settings,下载附件settings-open.xml,并重命名为settings.xml,建议直接放在【C:\Users\你的用户名.m2】下面。下载地址见oinone开源社区群公告,也可以联系oinone合作伙伴或服务人员

  3. 配置环境变量 在用户环境变量中新建变量为M2_HOME的项,值为Maven安装路径

3.1.2 环境准备(windows版)

图3-1-30 新建变量M2_HOME

编辑变量为Path的项添加一个值%M2_HOME%\bin

3.1.2 环境准备(windows版)

图3-1-31 添加一个值%M2_HOME%\\bin

  1. 验证

3.1.2 环境准备(windows版)

图3-1-32 验证Maven是否安装成功

安装 Jetbrains IDEA (下载地址见书籍【附件一】

  1. 插件安装 下载地址 密码: mdji

  2. 如果IDEA安装了Lombok插件,请禁用Lombok插件

  3. 点击菜单项File => Settings => Plugins

3.1.2 环境准备(windows版)

图3-1-33 插件管理页面操作示意

下载插件包 (联系Oinone官方客服)

3.1.2 环境准备(windows版)

图3-1-35 操作指引

3.1.2 环境准备(windows版)

图3-1-36 操作指引

安装MySQL 8 (下载地址见书籍【附件一】)

  1. 解压下载的ZIP安装包, 复制到自定义安装目录

  2. 设置环境变量 MYSQL_BASE_DIR

提换成MySQL安装目录路径

  1. 把 %MYSQL_BASE_DIR%\bin 加入到系统环境变量中

在PowerShell中可以使用 Get-Command mysqld 命令验证环境变量是否配置成功,执行成功输出mysqld的所在路径

  1. 初始化

在命令行中执行 mysqld --initialize-insecure --user=mysql

  1. 安装

    mysqld -install

  2. 启动MySQL服务

    mysqld -install

  3. 设置root用户密码

    alter user \'root\'@\'localhost\' identified with mysql_native_password by \'oinone\'; flush privileges;

安装DB GUI工具

Datagrip、MySQLWorkbench、DBEaver 选其一 ### 安装Git (下载地址见书籍【附件一】)

安装GraphQL测试工具Insomnia(下载地址见书籍【附件一】)

安装RocketMQ(下载地址见书籍【附件一】)

  1. 修改安装目录下bin中对应文件的默认配置

    a. runserver.cmd文件内容 -Xms2g -Xmx2g为 -Xms1g -Xmx1g

    b. runbroker.cmd文件内容 -Xms2g -Xmx2g为 -Xms1g -Xmx1g,以及-XX:G1HeapRegionSize=1m

  2. 启动RocketMQ NameServer命令 RocketMQ安装目录\bin\mqnamesrv.cmd start

  3. 启动RocketMQ Broker命令 RocketMQ安装目录\bin\mqbroker.cmd -n localhost:9876

  4. 停止 RocketMQ命令 mqshutdown.cmd broker mqshutdown.cmd namesrv

安装ElasticSearch 版本 8.4.1(下载地址见书籍【附件一】) (非必须)

ES运行时需要JDK18及以上版本JDK运行环境, ES安装包中包含了一个JDK18版本

set JAVA_HOME=ES安装路径\jdk

  1. 启动

ES安装路径\bin\elasticsearch.bat

  1. 停止 ctrl+c 或者关闭cmd、PowerShell的窗口

安装Redis (下载地址见书籍【附件一】)

  1. 解压安装包到安装目录

  2. 在PowerShell进入到Redis安装目录

  3. 在PowerShell中执行.\redis-server.exe,输出图中类似信息(如下图3-35所示):

3.1.2 环境准备(windows版)

图3-1-37 验证redis是否安装成功

  1. 新开PowerShell窗口, 进入到Redis安装目录, 执行 .\redis-cli.exe回车,输入 ping 回车输出 PONG即表示Redis安装成功

3.1.2 环境准备(windows版)

图3-1-38 验证redis是否安装成功

Zookeeper安装(下载地址见书籍【附件一】)

  1. 解压安装, 在 PowerShell中执行 tar zxvf 安装包路径(tar.gz包) -C Zk安装目录

  2. 进入 Zk安装目录\conf\ 复制 zoo_sample.cfg文件为 zoo.cfg

  3. 修改zoo.cfg文件的内容 (其中dataDir需要自己设定)

tickTime=2000
initLimit=10
syncLimit=5
clientPort=2181
dataDir=需要设置路径用来保存zk数据
maxClientCnxns=120
autopurge.snapRetainCount=3
autopurge.purgeInterval=1
admin.enableServer=false

图3-1-39 配置zk参数

  1. 进入 Zk安装目录\bin\执行 zkServer.cmd 5新开PowerShell窗口, 进入到Zk安装目录, 执行 zkCli.cmd, 连接成功后输入 ls /输出类似信息即安装成功

3.1.2 环境准备(windows版)

图3-1-40 验证zk是否安装成功

二、前端环境准备

  1. 安装nodejs 版本12.12.0 (下载地址见书籍【附件一】)

a.下载zip包之后解压到安装目录

b. 配置环境变量

ⅰ. 添加NODE_HOME环境变量

3.1.2 环境准备(windows版)

图3-1-41 添加NODE_HOME环境变量

ⅱ. 编辑PATH环境变量

3.1.2 环境准备(windows版)

图3-1-42 编辑PATH环境变量

c. 打开PowerShell输入

node --version
npm --version

图3-1-43 验证node和npm是否安装成功

输出类似信息,即为成功安装node与npm

3.1.2 环境准备(windows版)

图3-1-44 验证node和npm是否安装成功

  1. 安装vue-cli
npm install @vue/cli@4.5.17 -g

图3-1-45 安装vue-cli

安装完成之后执行vue --version,输出类似信息,即为成功安装vue-cli

3.1.2 环境准备(windows版)

图3-1-46 验证vue-cli是否安装成功

  1. 配置NPM源
npm config set registry http://nexus.shushi.pro/repository/kunlun/

图3-1-47 配置NPM源

  1. 登录NPM源账
npm login --registry "http://nexus.shushi.pro/repository/kunlun/"
# username、password、email 请见oinone开源社区群公告,也可以联系oinone合作伙伴或服务人员
npm info underscore

图3-1-48 登入NPM源的账号指令

3.1.2 环境准备(windows版)

图3-1-49 登入NPM源是否成功

3.1.2 环境准备(windows版)

图3-1-50 登入NPM源是否成功

  1. 安装cnpm (参见https://www.npmjs.com/package/cnpm
    npm install cnpm -g --registry=https://registry.npmmirror.com
    cnpm.cmd --version

    图3-1-51 安装cnpm

3.1.2 环境准备(windows版)

图3-1-51 验证cnpm安装是否成功

Oinone社区 作者:史, 昂原创文章,如若转载,请注明出处:https://doc.oinone.top/oio4/9226.html

访问Oinone官网:https://www.oinone.top获取数式Oinone低代码应用平台体验

(3)
史, 昂的头像史, 昂数式管理员
上一篇 2024年5月23日
下一篇 2024年5月23日

相关推荐

  • 流程触发

    1. 流程触发 新增的流程设计页面默认包含两个节点,一个是流程的触发节点:确定流程开始的条件;另一个是流程结束的节点。 流程触发方式有模型触发、定时触发、日期触发三种方式,未设置流程触发方式时无法继续添加后续流程节点,同时无法进行流程发布,如左下图。触发方式设置完成后,可从左侧菜单栏拖入或流程箭头中的加号点击添加节点动作,如右下图。 1.1 模型触发 模型触发适用于模型中的数据字段变化开始流程的场景,比如员工请假审批流程。 模型触发的场景有数据的增删改,也可以对模型中的单个或多个字段进行条件筛选,若包含更新数据的场景可以设置选择更新字段,只有设置的字段更新才会触发流程,若不设置选择更新字段或者筛选条件,则模型中任一字段发生设置场景的变化时都会触发流程。 1.2 定时触发 定时触发适用于周期性调用流程的场景,比如仓库周期性盘点的流程。 需要设置一个流程第一次执行的时间,配置好循环的周期间隔。特殊的是选择周为周期时,当前周选中的日期也会执行流程。例:开始时间:2022-01-14(周四) 循环周期间隔:1周 自定义设置为周一到周五,则2022-01-15(本周五)也会执行流程操作。 1.3 日期触发 日期触发适用于模型中的日期时间字段引发流程的场景,比如给员工发生日祝福短信的流程。 设置日期触发时,若指定字段只包含日期,则必须要指定时刻,如左下图。例如给员工发生日祝福短信时根据模型中的员工生日数据获取到了执行流程的日期,需要制定开始该流程执行的具体时刻。若指定字段包含日期和时间,则不填写指定时刻时默认按照字段中的时刻开始执行流程,如右下图。例如办理业务后短信回访收集评价时根据模型中的业务完成时间,立即或延时发送短息。

    2024年6月20日
    1.8K00
  • 4.1.14 Search之非存储字段条件

    search默认查询的是模型的queryPage函数,但我们有时候需要替换调用的函数,这个特性会在下个版本支持。其核心场景为当搜索条件中有非存储字段,如果直接用queryPage函数的rsql拼接就会报错,所以非存储字段不会增加在rsql中。本文介绍一个比较友好的临时替代方案。 非存储字段条件(举例) Step1 为PetTalent新增一个非存储字段unStore @Field(displayName = "非存储字段测试",store = NullableBoolEnum.FALSE) private String unStore; 图4-1-14-1 为PetTalent新增一个非存储字段unStore Step2 修改PetTalent的Table视图的Template 在标签内增加一个查询条件 <field data="unStore" /> 图4-1-14-2 修改PetTalent的Table视图的Template Step3 重启看效果 进入宠物达人列表页,在搜索框【非存储字段测试】输入查询内容,点击搜索跟无条件一致 Step4 修改PetTalentAction的queryPage方法 package pro.shushi.pamirs.demo.core.action; …… 引入依赖类 @Model.model(PetTalent.MODEL_MODEL) @Component public class PetTalentAction { ……其他代码 @Function.Advanced(type= FunctionTypeEnum.QUERY) @Function.fun(FunctionConstants.queryPage) @Function(openLevel = {FunctionOpenEnum.API}) public Pagination<PetTalent> queryPage(Pagination<PetTalent> page, IWrapper<PetTalent> queryWrapper){ QueryWrapper<PetTalent> queryWrapper1 = (QueryWrapper<PetTalent>) queryWrapper; Map<String, Object> queryData = queryWrapper.getQueryData(); String unStore = (String) queryData.get(LambdaUtil.fetchFieldName(PetTalent::getUnStore)); if (StringUtils.isNotEmpty(unStore)) { //转换查询条件 queryWrapper1.like( 图4-1-14-3 修改PetTalentAction的queryPage方法 Step5 重启看效果 在搜索框【非存储字段测试】输入查询内容,跟通过【达人】字段搜索的效果是一致的 图4-1-14-4 示例效果

    2024年5月23日
    1.4K00
  • 3.5.2.1 整体介绍

    虽然我们有小眼睛可以让用户自定义展示字段和排序喜好,以及通过权限控制行、列展示,但在我们日常业务开发中还是会对页面进行调整,以满足业务方的对交互友好和便捷性的要求。本节会在如何自定义之前我们先介绍页面结构与逻辑,再带小伙伴一起完成自定义view的Template和Layout,以及整个母版的Template和Layout 页面的构成讲解 页面交互拓扑图 页面交互拓扑图 图3-5-2-1 页面交互拓扑图 注:页面逻辑交互拓扑图说明 模块作为主切换入口 模块决定菜单列表 菜单切换触发点击action 前端根据Mask、View进行渲染, a. Mask是母版是确定了主题、非主内容分发区域所使用组件和主内容分发区域联动方式的页面模板。全局、应用、视图动作、视图都可以通过mask属性指定母版 bMask和View都是有layout定义和template定义合并而成,系统会提供默认母版,以及为每种视图提供默认layout c. layout与template通过插槽进行匹配 Action根据不同类型做出不同访问后端服务、url跳转、页面路由、发起客户端动作等 Aciton路由可以指定Mask、视图组件的layout、template a. 当layout没有指定的时候则用系统默认的 b. 当template没有指定的时候,且视图组件相同类型有多条记录时,根据优先级选取 Mask和视图组件的layout优先级(视图组件>视图动作 > 应用 > 全局) 默认母版以及各类视图组件 母版布局 默认母版基础布局base-layout <mask layout="default"> <header slot="header"/> <container slot="main" name="main"> <sidebar slot="sidebar"/> <container slot="content"/> </container> <footer slot="footer"/> </mask> 图3-5-2-2 默认母版基础布局base-layout 母版template <mask layout="default"> <mask name="defaultMask"> <template slot="header"> <container name="appBar"> <element widget="logo"/> <element widget="appFinder"/> </container> <container name="operationBar"> <element widget="notification"/> <element widget="dividerVertical"/> <element widget="languages"/> </container> <element widget="userProfile"/> </template> <template slot="sidebar"> <element widget="navMenu"/> </template> <template slot="content"> <element widget="breadcrumb"/> <element widget="mainView"/> </template> </mask> 图3-5-2-3 母版template 注: 上例中因为名称为main的插槽不需要设置更多的属性,所以在template中缺省了main插槽的template标签。 最终可执行视图 <mask name="defaultMask"> <header> <container name="appBar"> <element widget="logo"/> <element widget="appFinder"/> </container> <container name="operationBar"> <element widget="notification"/> <element widget="dividerVertical"/> <element widget="languages"/> </container> <element widget="userProfile"/> </header> <container name="main"> <sidebar name="sidebar"> <element widget="navMenu"/> </sidebar> <container name="content"> <element widget="breadcrumb"/> <element widget="mainView"/> </container> </container> <footer/> </mask> 图3-5-2-4 最终可执行视图 表格视图布局 默认表格视图基础布局base-layout <view type="table"> <view type="search"> <element widget="search" slot="search"> <xslot name="fields" slotSupport="field" /> </element> </view> <pack widget="fieldset"> <element widget="actionBar" slot="actions" slotSupport="action" /> <element widget="table" slot="table"> <xslot name="fields" slotSupport="field" /> <element widget="actionsColumn" slot="actionsColumn"> <xslot name="rowActions" slotSupport="action" /> </element> </element> </pack> </view> 图3-5-2-5 默认表格视图基础布局base-layout 注:table标签的子标签为column组件,如果field填充到元数据插槽fields没有column组件将自动包裹column组件。 表格视图template <view type="table" model="xxx" name="tableViewExample">…

    2024年5月23日
    1.4K00
  • 通知类

    1.通知类 1.1 站内信 当流程节点需要向用户发送消息或提示时使用站内信这个节点动作。接收人的选取类似审批节点的审批人,通知内容必填,配置完成,保存即可。 节点触发后,接收人会在全渠道运营平台-工作台-我的消息中查看到站内信。 1.2 邮件 当需要向指定邮箱发送邮件时使用邮件这个节点动作。可直接输入邮箱号,或者按照员工、部门、角色来选择,给接收人登记的邮箱发送邮件,也可以选择模型中的邮箱来发送邮件,若人员重复时只会发送一次邮件。填写主题,填写正文时可以调用当前流程中的一些模型字段的变量。 1.3 短信 发送短信需要在工作流-系统设置-短信模板中创建一个短信模板,阿里云模版新增需要一段时间审核,审核通过后就可以正常使用短信节点。短信的接收人与邮件的操作方式一致,之后选择短信模板,并且确定好变量的对应关系即可。

    2024年6月20日
    1.9K00
  • 5.7 商业支撑之库存域

    库存的差异会反馈到企业的整个价值链上,所以对库存的设计是至关重要的 一、基础介绍 我们先抛开仓库中对库存的实操管理和整个流通领域的库存,只围绕企业自身一级的采销链路上我们可以从管理和销售两个角度去看。 从管理角度上我们会关心:实物库存、在途库存、在产库存、库存批次等等,也就是企业有多少库存分布在哪里在什么环节。 从销售角度上我们会关心:可售库存、安全库存等等,也就是企业在特定渠道销售中库存分配规则。 在商业场景中库存管理一头对接仓库、生成、采购,另一头对接多个销售渠道。它的挑战在于不同行业不同特征商品都有比较大的差异。比如家具行业卖的是生产能力,家电区域化销售,生鲜拼车销售,服饰一仓销全国。热销的要分配提升体验防止超卖,滞销的要活动拉流量,普通的要渠道共享最大化可售。库存管理的差异会反馈到企业的整个价值链上,所以对库存的设计是至关重要的。 库存设计挑战在于: 技术上:库存类似账户账本的设计,需要能追溯库存变化的过程,且库存操作都能可追溯业务单据。热点数据的并发控制 业务上:在管理角度上游能跟仓库、采购、生产等进行对接、对账、并为其设置可售规则,下游能为各个销售渠道设置库存分配与同步规则 二、模型介绍 图5-7-1 模型介绍 核心设计逻辑: 单据链路:业务单据(外部业务单据+库存业务单据)产生库存指令(库存调整入\出库单),再由库存指令操作库存并记录库存流水。 管理链路:基础数据维护仓库、供应商、服务范围与费用。这些数据是订单履约路由和可售库存同步的基础 库存数据:对外跟商品域,通过库存指令进行操作。不同库存各自维护自身库存与流水记录,确保可追溯。 如果跟销售渠道对接,还需要扩展可售库存逻辑规则以及同步规则。比如oms类似的应用

    2024年5月23日
    1.5K00

Leave a Reply

登录后才能评论