DataEase开源代码在Windows系统开发环境搭建与运行指南

DataEase是由飞致云开发并提供商业和社区支持的国产化BI分析系统,自2021年飞致云在git上提交开源代码以来进步迅速,得益于飞致云的专业与社区广大用户的支持,目前已经该具备优秀的应用能力,虽然在git上的评分任然与superset有些差距,但在操作逻辑和结果展现方面更加符合国人习惯(大家都懂得),优势明显,飞致云在提供商业版同时提供开源社区版,社区版更新及时、全面,核心代码全部开放,非常适合进行学习,在文档支持方面,社区版目前支持较为薄弱(曾经有段时间飞致云提供了开源项目指导文档,后来什么原因不在提供和更新了,原因未知。),下面简要记录和介绍一下在windows中搭建DataEase开发环境和调试的过程。
飞致云:https://dataease.io/
开源库:https://github.com/dataease/dataease

一、环境准备

操作系统:
windows

数据库:
mysql8.0 (DataEase要求必须是mysql8.0以上版本)

开发环境:
IntelliJ IDEA 社区板(DataEase后端采用java语言开发,IDEA要比VSCODE舒服多了)
VSCode (前端开发必备)

JDK:17 (这个先不用管,稍候IDEA帮你弄好)

Nodejs:16 (这个先不用管,稍候IDEA帮你弄好)

Npm: 8 (这个先不用管,稍候IDEA帮你弄好)

git: (没有就装,这个别问)

先将以上软件都准备好备用(相信都能安装后用明白吧,否则到这就不用在继续了,太费时间了)。

二、代码获取和数据库创建

1. 获取代码

在你选定的文件夹位置使用git clone 命令克隆dataease的代码。

git clone https://github.com/dataease/dataease.git

在这里插入图片描述
代码克隆完毕后,会在选定位置创建dataease文件夹,其中就是程序源码。
在这里插入图片描述

2. 创建数据库

数据库初始化脚本在源码文件夹中\dataease\core\core-backend\src\main\resources\db\desktop 这个位置,有两个脚本,都需要执行。

  • 登录mysql创建数据库
 create database dataease character set utf8mb4;

在这里插入图片描述

  • 打开刚创建的数据库后,在其中执行两个sql脚本文件初始化数据库
use dataease
source C:\dataease\dataease\core\core-backend\src\main\resources\db\desktop\V2.0__core_ddl.sql
source C:\dataease\dataease\core\core-backend\src\main\resources\db\desktop\V2.1__ddl.sql

三、开发环境配置

使用IDEA打开dataease源码目录。
在这里插入图片描述

注意:首次使用使用IDEA打开项目后,IDEA会通过pom.xml项目文件下载依赖包,时间比较长,建议此操作完成后在进行后续操作
在这里插入图片描述
在首次使用IDEA打开项目出现插件推荐可以安装。
在这里插入图片描述

同步资源包出现一些错误可以忽略,不影响后续构建项目。
在这里插入图片描述

1.下载JDK

dataease需要的版本为17,下载方式为在IDEA中选择菜单 文件->项目结构->项目->SDK中,默认显示无SDK,点击列表框选择 下载JDK。
在这里插入图片描述
在下载JDK框中选择版本17,选择供应商(容易下载的),设置安装位置进行下载(点击下载按钮)。
在这里插入图片描述

2.JDK相关配置

JDK下载完成后,调整与JDK相关的设置,文件->项目结构->项目->语言级别,选17。
在这里插入图片描述
文件->设置->构建、执行、部署->编译器->Java编译器->项目字节码版本,选择17
在这里插入图片描述为了减少在编译因子级项目缺少引用库,在此设置页面中选择 构建工具->Maven->运行程序,勾选 将IDE构建/运行操作委托给Maven 项。
在这里插入图片描述

3.将core加入Maven项目

在项目管理其中选择 core->pom.xml,使用右键选择 添加为Maven项目,添加完成后IDEA又开始下载相关依赖包,等待下载完成。

在这里插入图片描述
至此,Java基础环境基本配置已经完成。

四、代码调试

环境准备完成后,看一下项目的目录结构,其中 core 是前后端主要代码,drivers 为动态加载的数据库驱动,mapFiles 为系统内使用的genJson地图资源,sdk 为项目公共库,staticResource 为后端的静态资源库,在开始跑程序前有几个配置需要设置一下。

1.数据库连接修改

后端代码需要连接数据库,数据库配置参数在\core\core-backend\src\main\resources\application-standalone.yml 中,根据你的MySQL参数进行修改。

2.配置后端静态资源文件位置

dataease在运行过程中需要很多的静态资源,包括地图、模板素材等,这些资源由后端进行管理,资源位置在 \sdk\common\src\main\java\io\dataease\constant\StaticResourceConstants.java 中,其中最主要的是USER_HOME,修改为自定义的windows本地资源目录,并将项目中的dirvers、mapFiles、staticResource 目录复制到自定义的windows目录中,将mapFiles 名称改为 map, staticResource 名称改为 static-resource,之后修改此文件中的FILE_PROTOCOL 变量内容为 “file:///”(windows中文件访问协议符号需要三个斜杠,否则报错。),此处资源位置修改主要解决地图数据、模板数据的静态资源访问问题,项目中还有两处写在代码中的资源路径,可以通过文件中查找/opt/dataease2.0/data字符串来查找根据需要进行修改。
在这里插入图片描述

3.修改运行时驱动位置

修改\core\core-backend\src\main\java\io\dataease\datasource\provider\CalciteProvider.java 下的 FILE_PATH 变量值为自定义资源文件目录中的drivers路径,避免运行时动态加载数据库驱动出错。
在这里插入图片描述

4.修改后端项目pom.xml文件

首次编译前,需要修改后端项目core-backend 目录中的pom.xml文件,修改<filtering>true</filtering> 中的值为false ,避免编译时由前端向后端集成资源包时报错。
在这里插入图片描述

5.修改前端项目pom.xml和相关配置文件

项目在进行整体构建时首先编译构建前端代码,前端生成dist发布资源目录,后端将此目录文件复制到\core\core-backend\src\main\resources\static\assets\ 中,并封装在编译后的jar中,而前端编译过程也在pom.xml中进行配置,打开前端项目 core-frontend 目录中的pom.xml文件,找到<!--首次打包需要放开--><!--前端组件有更新需要放开--> 的注释代码,放开下面的(取消注释)execution节点,这样在编译构建项目时就会自动安装nodejs、npm 等前端编译相关工具,同时下载前端项目依赖包(首次编译后可以再次注释掉这部分代码)
在这里插入图片描述
在这段代码下面增加如下代码,会自动全局安装win-node-env,用于解决windows系统的 ‘NODE_OPTIONS’ is not recognized as an internal or external command 问题。

          <execution>
            <id>npm install -g win-node-env</id>
            <goals>
              <goal>npm</goal>
            </goals>
            <configuration>
              <arguments>install -g win-node-env</arguments>
            </configuration>
          </execution>

修改core/core-frontend/.eslintrc.js 文件,在最后的rules 节点中增加以下内容,避免前端项目在编译时因格式检查出现错误(windows与macOS、linux中的换行符号表示不同,会因此错误)。

"prettier/prettier": ['off']

在这里插入图片描述

6.项目构建(编译)
构建基础项目

在项目管理其中鼠标右键选择根 dataease ,在菜单中选择 构建模块'dataease',开始构建项目,此时构建项目并不包括core核心代码,只是将sdk中的组件编译完成。

在这里插入图片描述
在构建过程中可以选择构建按钮,查看构建过程输出,便于错误排除。
在这里插入图片描述

构建核心项目

在项目管理器中鼠标右键选择core文件夹,选择 构建模块’core’ ,开始构建核心项目,此处构建包括前端后端,所以时间较长。
在这里插入图片描述
当core构建完成后,在项目管理中可以看到生成了 \core\core-backend\target\CoreApplication.jar 文件,在CoreApplication.jar 鼠标右键可以运行或调试了。
在这里插入图片描述

项目运行

当CoreApplication.jar 成功运行后,可以通过http://localhost:8100正常访问了,用户名与密码分别为 admin Dataease@123456
在这里插入图片描述

五、前端代码独立调试

通过上面步骤,core的后端项目已经可以进行运行或调试了,但是在日常开发中,前端与后端是分别进行的,下面记录一下前后端如何分别调试。

1.修改后端pom.xml文件不在集成前端dist文件夹

修改\core\core-backend\pom.xml 文件,将以下内容注释掉,这样在单独编译后端代码时不在检查并集成前端dist目录内容。
在这里插入图片描述
在开始前后端独立调试后,后端代码构建将不在选择core目录,而需要选择\core\core-backend 进行构建。
在这里插入图片描述

2.设置nodejs、npm的系统环境变量

在前面说明的项目整体编译时,前端pom.xml配置文件中设置会自动安装nodejs、npm,安装后的位置在\core\core-frontend\node 中,在前端单独调试前需要将此路径配置到系统环境变量中。

3.前端项目编译

使用vscode 打开\core\core-frontend\ 目录,进行前端开发的正常配置和流程进行前端调试即可,npm运行命令可以在\core\core-frontend\package.json 中看到,其中 npm run dev 为开发模式,npm run build:base 为构建输出。
在这里插入图片描述
前端的访问地址是http://localhost:8080,至此可以对DataEase开源代码进行前后端单独调试。

Logo

瓜分20万奖金 获得内推名额 丰厚实物奖励 易参与易上手

更多推荐