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日

相关推荐

  • 梅丛银

    认识陈鹏程及数式核心团队同学已经有一段时间了,在我们多次的交流讨论中时常会谈及:未来中国哪家软件企业能在互联网云原生时代走出来超越传统软件企业?史昂说这是他的梦想,也是他们团队这么多年坚持技术和产品研发与应用优先思考之路。史昂及数式核心团队面向企业应用市场历经三年的潜心研发和实战交付,推出Oinone产品及配套的低代码平台工具:对比国内外应用软件平台在开放生态和云原生均有它的继承性和独特性,特别是将技术平台赋予企业各种业务领域属性,便于企业客户和开发伙伴的二次开发并能快速搭建各类企业核心应用场景是Oinone的最大亮点。Oinone的内在特点之一是参考了全球最大开源ERP Odoo的元数据模型设计,同时基于业务中台架构和云原生技术,形成了自己一套国际化的快速开发平台、建模规范和应用产品,通过自己进场落地很多品牌企业的应用中台化不断迭代升级,走出了一条具有显著特色的新应用软件之路。史昂及团队特点谦卑、善于思考,善于吸收他山之精华,这是创业团队难能可贵之点,由此能善于与生态伙伴合作也是能够走的更远更长的基础基因。最后希望和祝愿Oinone能为中国企业在云时代数字化实践做出更多的贡献,为软件产业构建强大的应用生态和开发社区,真正树立起Oinone自己的软件品牌形象。 资深IT咨询专家&浩鲸云智能专家学院院长:梅丛银

    Oinone 7天入门到精通 2024年5月23日
    1.3K00
  • 用户中心

    1. 创建用户 进入用户中心应用,在用户列表中点击创建。 填写表单中的必填信息。 若未设置昵称,则右上角头像右侧展示名称。若设置了昵称,则右上角头像右侧展示昵称。 是否激活账号选择是,选择否时用户登录会显示“未找到首页”。 角色分组中,选择创建的用户的角色,默认选择了超级管理员(包含所有权限)。 点击确定,用户创建完成。 用户登录时可用登录账号/邮箱/手机号登录。 2. 用户相关操作 表格页中包含常规的搜索、批量删除功能。 冻结:当将“是否有效”状态为“是”时展示,将用户“是否有效”修改为“否”。 解冻:当将“是否有效”状态为“否”时展示,将用户“是否有效”修改为“是”。 修改:进入用户信息修改页面,“编码、登录账号、注册时间”只读。 重置密码:点击后在弹窗“账号确认”中输入账号,点击重置密码后,展示新密码。

    2024年6月20日
    2.3K00
  • 3.5.6.3 布局的配置

    布局是将页面拆分成一个一个的小单元,按照上下中左右进行排列。 前沿 在前端领域中,布局可以分为三大块「Float、Flex、Grid 」,Float可以说的上是上古时期的布局了,如今市面还是很少见的,除了一些古老的网站。 目前,平台主要支持通过配置XML上面的cols和span来进行布局。平台也同样支持自由布局,合理的使用row、col、containers和container四个布局容器相关组件,将可以实现各种类型的布局样式,换句话说,平台实现的自由布局功能是Flex和Grid的结合体。 这里主要是讲解Flex和Grid布局,以及目前新的模板布局实现的思路。 Flex布局 Flex布局采用的是一维布局,那么什么是一维布局呢,所谓的一维布局就是只有一个方向、没有体积、面积,比如一条直线。它适合做局部布局,就像我们原来的顶部菜单、面包屑导航,以及现在的主视图字段配置。 图3-5-6-19 Flex布局示意 图3-5-6-20 Flex布局示意 图3-5-6-21 Flex布局示意 从上图可以看看出,Flex布局只能在X、Y轴进行转换,它无法对上下左右四个方向同时处理,因为它没“面积”的概念。所以它最适合做局部布局。 优点 图3-5-6-22 Flex兼容性 Flex的兼容性,可以看得出来,目前主流的浏览器都支持该属性。所以Flex兼容性强,如果你想对局部做布局处理,Flex是最好选择。 缺陷 刚刚也提到了,用户想要的布局是千奇百怪的,如果他想要的布局在现有的功能中无法实现怎么办?让用户放弃?还是说服他使用现在的布局。 Grid布局 Grid布局系统采用的是二维布局,二维布局有四个方向:上、下、左、右,它只有面积没有体积,比如一张纸、网格。 Grid布局 <div id="grid-container-one"> <div class="one-1">Grid Item 1</div> <div>Grid Item 2</div> <div>Grid Item 3</div> <div>Grid Item 4</div> <div>Grid Item 5</div> <div class="one-6">Grid Item 6</div> </div> <div id="grid-container-two"> <div class="tow-1">Grid Item 1</div> <div class="tow-2">Grid Item 2</div> <div>Grid Item 3</div> <div>Grid Item 4</div> <div>Grid Item 5</div> <div>Grid Item 6</div> </div> <div id="grid-container-three"> <div>Grid Item 1</div> <div>Grid Item 2</div> <div class="grid">Grid Item 3</div> <div class="grid-column">Grid Item 4</div> <div>Grid Item 5</div> <div>Grid Item 6</div> <div>Grid Item 7</div> <div class="grid-column">Grid Item 8</div> </div> HTML CSSResult Skip Results Iframe EDIT ON * { box-sizing: border-box; padding: 0; margin: 0; line-height: 1.5; font-weight: bold; text-align: center; } #grid-container-one{ background-color: black; display: grid; grid-template-columns: repeat(3, 1fr); grid-template-rows: repeat(2, 50px); gap: 10px; border: solid black 2px; margin-bottom: 20px; color: salmon; } #grid-container-one div { border: solid white 2px; padding: 10px; } #grid-container-one .one-1 { grid-area: span 1/span 3; text-aligin: center } #grid-container-one .one-6 { grid-column: 3 /4; } #grid-container-two{ background-color: CADETBLUE; display: grid; grid-template-columns: 15% repeat(2, 1fr);…

    2024年5月23日
    1.4K00
  • 4.2.3 框架之SPI机制

    SPI(Service Provider Interface)服务提供接口,是一套用来被第三方实现或者扩展的API,它可以用来启用框架扩展和替换组件,简单来说就是用来解耦,实现组件的自由插拔,这样我们就能在平台提供的基础组件外扩展新组件或覆盖平台组件。 目前定义SPI组件 ViewWidget 视图组件 FieldWidget 字段组件 ActionWidget 动作组件 表4-2-3-1 目前定义SPI组件 前提知识点 使用 TypeScript 装饰器(注解)装饰你的代码 1. 通过注解定义一种SPI接口(Interface) @SPI.Base<IViewFilterOptions, IView>('View', ['id', 'name', 'type', 'model', 'widget']) export abstract class ViewWidget<ViewData = any> extends DslNodeWidget { } 图4-2-3-1 代码示意 2. 通过注解注册提供View类型接口的一个或多个实现 @SPI.Base<IViewFilterOptions, IView>('View', ['id', 'name', 'type', 'model', 'widget']) export abstract class ViewWidget<ViewData = any> extends DslNodeWidget { } 图4-2-3-2 代码示意 3. 视图的xml内通过配置来调用已定义的一种SPI组件 <view widget="form" model="demo.shop"> <field name="id" /> </view> 图4-2-3-3 代码示意 图4-2-3-4 组件继承示意图 当有多个服务提供方时,按以下规则匹配出最符合条件的服务提供方 SPI匹配规则 SPI组件没有严格的按匹配选项属性限定,而是一个匹配规则 按widget最优先匹配,配置了widget等于是指定了需要调用哪个widget,此时其他属性直接忽略 按最大匹配原则(匹配到的属性越多优先级越高) 按后注册优先原则

    2024年5月23日
    1.4K00
  • 4.1.23 框架之信息传递

    在4.1.13【Action之校验】、3.4.1【构建第一个Function】等文章中,都用到PamirsSession.getMessageHub()来设置返回消息,基本上都是在传递后端逻辑判断的异常信息,而且在系统报错时也会通过它来返回错误信息,前端接收到错误信息则会以提示框的方式进行错误提示。其实后端除了可以返回错误信息以外,还可以返回调试、告警、成功、信息等级别的信息给前端。但是默认情况下前端只提示错误信息,可以通过前端的统一配置放开提示级别,有点类似后端的日志级别。 一、不同信息类型的举例 Step1 新建PetTypeAction 借用PetType模型的表格页做为信息传递的测试入口,为PetType模型新增一个ServerAction,在代码中对信息的所有类型进行模拟 package pro.shushi.pamirs.demo.core.action; import org.springframework.stereotype.Component; import pro.shushi.pamirs.demo.api.model.PetCatItem; import pro.shushi.pamirs.demo.api.model.PetType; import pro.shushi.pamirs.meta.annotation.Action; import pro.shushi.pamirs.meta.annotation.Model; import pro.shushi.pamirs.meta.api.dto.common.Message; import pro.shushi.pamirs.meta.api.session.PamirsSession; import pro.shushi.pamirs.meta.enmu.ActionContextTypeEnum; import pro.shushi.pamirs.meta.enmu.InformationLevelEnum; import pro.shushi.pamirs.meta.enmu.ViewTypeEnum; @Model.model(PetType.MODEL_MODEL) @Component public class PetTypeAction { @Action(displayName = "消息",bindingType = ViewTypeEnum.TABLE,contextType = ActionContextTypeEnum.CONTEXT_FREE) public PetType message(PetType data){ PamirsSession.getMessageHub().info("info1"); PamirsSession.getMessageHub().info("info2"); PamirsSession.getMessageHub().error("error1"); PamirsSession.getMessageHub().error("error2"); PamirsSession.getMessageHub().msg(new Message().msg("success1").setLevel(InformationLevelEnum.SUCCESS)); PamirsSession.getMessageHub().msg(new Message().msg("success2").setLevel(InformationLevelEnum.SUCCESS)); PamirsSession.getMessageHub().msg(new Message().msg("debug1").setLevel(InformationLevelEnum.DEBUG)); PamirsSession.getMessageHub().msg(new Message().msg("debug2").setLevel(InformationLevelEnum.DEBUG)); PamirsSession.getMessageHub().msg(new Message().msg("warn1").setLevel(InformationLevelEnum.WARN)); PamirsSession.getMessageHub().msg(new Message().msg("warn2").setLevel(InformationLevelEnum.WARN)); return data; } } 图4-1-23-1 为PetType模型新增一个ServerAction Step2 (前端)修改提示级别 在项目初始化时使用CLI构建初始化前端工程,在src/middleware有拦截器的默认实现,修改信息提示的默认级别为【ILevel.SUCCESS】 图4-1-23-2(前端)修改提示级别 const DEFAULT_MESSAGE_LEVEL = ILevel.SUCCESS; 图4-1-23-3(前端)修改提示级别 Step3 重启系统看效果 从页面效果中看到已经不在是只提示错误信息。从协议端看错误级别的信息是在errors下,其他级别的信息是在extensions下。 图4-1-23-4 示例效果 图4-1-23-5 系统提示的返回结果 二、MessageHub的其他说明 是实现上看MessageHub是基于GQL协议,前后端都有配套实现。同时前端还提供了订阅MessageHub的信息功能,以满足前端更多交互要求,前端MessageHub提供的订阅能力使用教程详见4.2.2前端高级特性之【框架之MessageHub】一文。

    2024年5月23日
    1.2K00

Leave a Reply

登录后才能评论