最近,许多小伙伴在Dataease社群中询问如何在IDEA中启动Dataease。为此,我特意编写了这篇文章,手把手教大家如何在IDEA中成功启动和运行Dataease。
开发环境说明:
MySQL(>=5.7)
Apache Maven(>=3.8)
JDK(21)
一、下载Dataease
github: https://github.com/dataease/dataease.git
二、IDEA中配置本地Maven
依次选择File -> Settings -> Build,Execution,Deployment -> Build Tools -> Maven
三、等待IDEA扫描完本地代码
四、手动添加core目录为pom
如果core文件夹没有高亮显示,则说明IDEA没有将该文件夹识别为一个有效的maven子项目,此刻需要手动添加Maven Project,等待IDEA扫描完成。
五、编译/打包dataease模块
选择IDEA右侧的Maven按钮,选择dataease -> package按钮进行打包,打包成功后点击install将各个子模块安装到本地Maven仓库中。
六、编译/打包core模块
选择IDEA右侧的Maven按钮,选择core -> package按钮进行打包(打包耗时较久,请耐心等待...)
中间报错,请参考文末的踩坑指南
七、在MySql中创建本地数据库dataease
八、修改配置
修改数据源连接信息
修改驱动加载目录
九、启动
启动成功后:访问localhost:8100 账号:admin 密码:DataEase@123456
踩坑指南
1、下载Node.exe失败
报错:Could not download Node.js from: https://nodejs.org/dist/v16.15.0/win-x64/node.exe: Could not download https://nodejs.org/dist/v16.15.0/win-x64/node.exe: Connect to nodejs.org:443 [nodejs.org/104.20.23.46, nodejs.org/104.20.22.46] failed: Connection timed out: connect -> [Help 1]
解决方案:直接通过浏览器下载node.exe,下载完成后放到你本地的Maven仓库的repository\com\github\eirslett\node\16.15.0目录下(目录不存在则逐级创建),然后将下载的node.exe改名为node-16.15.0-win-x64.exe
2、下载Npm失败
参考上述下载Node.exe失败的处理方式进行处理
3、core-frontend前端打包失败
报错: on project core-frontend: Failed to run task: 'npm run build:distributed' failed.
原因:在core-frontend/package.json中 "build:distributed": "NODE_OPTIONS=--max_old_space_size=4096 vite build --mode distributed && npm run build:flush",而在Windows系统不支持NODE_OPTIONS命令
解决方案:
- 使用npm install cross-env --save-dev 安装cross-env
在core-frontend/package.json中添加cross-env命令
4、缺少dataease的依赖
下述依赖,通过maven -> dataease -> install安装到本地后,则不会再从远程仓库下载,如果出现如下报错,则重新install一下dataease这个模块
5、启动报错:Command line is too long.
6、启动报错:缺少驱动
解决方案:修改io.dataease.datasource.provider.CalciteProvider类下加载驱动的路径
private final String FILE_PATH =
System.getProperty("user.dir") + File.separator + "drivers";
private final String CUSTOM_PATH =
System.getProperty("user.dir") + File.separator + "custom-drivers" + File.separator;
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。