detaease源码修改直接部署
dataease
部署
dataease
部署简介
官方给的在线部署方式,看似非常简单,其实是写的bash脚本,通过安装
docker
,docker-compose
等一系列工具,执行脚本来操作的,屏蔽了很多细节,而且linux本身又分了很多发行版,所以,很容易有一些隐形的坑,而且在线安装非常耗时,所以,这里采用了直接下载源码,修改部分配置,改成使用可执行jar的方式启动,回归传统的方式,简单有效
本文档基于当时的最新版v1.2.2,不是该版本的时候,仅供参考
开始部署
1. 下载源码
- 下载源码
checkout tag
1 | git clone git@github.com:dataease/dataease.git |
2. 准备编译环境
因为dataease
使用的pentaho-kettle
相关系列的jar,不在maven中央仓库,所以需要设置额外的profile
,来下载相关的jar
1 | <profile> |
注意mvn
使用的时候,不要忘记增加参数增加-P omni
来使该profile起效
3. 编译代码
执行一下命令编译,第一次编译非常慢,下载下载node
,并且执行npm install
,还要下载大量的jar,非常耗时
1 | mvn clean package -DskipTests |
4. 需要修改的配置
4.1 获取dataease.properties
文件
下载在线安装包,解压以后,在dataease/templates/
目录找到dataease.properties
文件,复制到项目的backend/src/main/resources
下面,里面的spring.datasource
相关的就是该应用使用的数据库配置,其余的可以暂时忽略
4.2 修改io.dataease.Application
配置
修改value
为classpath:dataease.properties
1 |
4.3 修改io.dataease.config.WebMvcConfig
配置
复制
mapFiles
文件夹到backend/src/main/resources
目录修改
io.dataease.config.WebMvcConfig
类,value
改为classpath:mapFiles/full/
.
1 |
|
4.4 修改ehcache.xml
的引用位置
ehcache.xml
的diskStore
改成线上存在的位置,否则回报错,需要提前修改,因为打包成可执行jar以后,就不好修改了
4.5 generatorConfig.xml
修改
1 | <properties url="classpath:dataease.properties"/> |
4.6 logback.xml
修改
删除下面一行,直接使用application.properties
的配置,
1 | <property file="/opt/dataease/conf/dataease.properties"/> |
总共有三个引用,其中只有${logger.level:INFO}
有默认值,其余都没有,需要自己配置,直接配置到application.properties
文件里面
${logging.file.path}
${logger.level:INFO}
${logger.sql.level}
5. 重新编译
重新编译即可,backend
项目target
目录会生成一个backend-1.2.0.jar
,这个就是spring boot
的可执行jar,可以直接部署
6. 配置专用数据库
因为dataease
项目使用了一些额外的功能,所以数据库的配置必须满足一下要求,如果原来的数据库已经满足,可以忽略,不满足,建议docker
新建一个数据库,专门给dataease
使用
lower_case_table_names=1
不区分大小写group_concat_max_len=1024000
尽可能的数值非常大sql_mode
去掉only_full_group_by
,以mysql8.0.26为例,去掉only_full_group_by
以后,这样配置sql_mode=STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION
7. 配置默认数据源
用户有两个,一个是admin
,一个是demo
,密码默认都是dataease
,登陆以后,会发现默认的数据源配置不对,因为我们不是docker的方式部署,数据库用的是我们自己的配置,所以,可以新建一个数据源,填写我们数据库的配置,然后到数据库datasource
表,把configuration
字段,复制到’demo’记录那一行,这样,所有的预览就可以正常起效了