在使用datahub时,业务上可能需要针对源代码进行修改,这就需要搭建一个本地的开发环境。
1.如何搭建本地开发环境?
1.1.搭建步骤
- fork 并且 clone github上的datahub项目,需要将{username}替换为自己在github上的账户名称
- 切换到datahub 根目录
- checkout 指定Tag
- 执行构建命令
- 在idea 中打开datahub项目,打开后效果详见下图
后面2步因为要下载大量的第三方依赖,所以需要漫长的等待【取决于你的网速】
命令如下【window系统下,可以在Git Bash 中运行】
git clone https://github.com/{username}/datahub.git
cd datahub
git checkout v0.8.24
./gradlew build
1.2.问题解决
1.2.1.访问github速度太慢
在国内访问github速度太慢,需要找一个梯子,具体安装可以参考 dev-sidecar
1.2.2.修改gradle仓库地址
datahub使用的gradle版本是5.6.4,可以提前下载安装
下载地址:gradle 5.6.4
安装步骤:
- 将gradle-5.6.4-all.zip 解压至
D:\program\gradle-5.6.4
- 配置如下环境变量:
GRADLE_HOME = D:\program\gradle-5.6.4
GRADLE_USER_HOME = D:\program\gradle-repo
- 在Path中添加执行路径:
%GRADLE_HOME%\bin
成功配置后,在idea的Gradle配置,可以看到环境变量配置的目录。
1.2.3. Unsupported class file major version 57
datahub是基于 Java 1.8 构建的,如果java版本太新,如Java 11,则可能会报此错误。请使用java 1.8进行构建
1.2.4. 与generateDataTemplate 或 其它generate相关的任务
当从datahub 元数据模型【metadata models】中生成相当多的文件时,旧的生成文件可能会与新的模型更改发生冲突。碰到这种情况下,执行这个命令./gradlew clean
应该可以解决。
1.2.5. ‘other’ has different root error
Task :li-utils:generateDataTemplate FAILED,‘other’ has different root error
这是一个已知的问题,当在Windows上构建项目时,由于Pegasus插件中的一个bug。请在Mac或Linux操作系统上构建。
注意:因为此BUG还没有解决,导致在windows系统上无法构建成功
详见如下issue:
Various Data Template generation issues on Windows #287
Execution failed for task ‘:li-utils:generateDataTemplate’ #1640
1.2.6. Execution failed for task ‘:gms:impl:checkRestModel’
这意味着一个不兼容的变更被引入到rest.li API in GMS
,需要通过运行以下命令来重建snapshots/IDL
:
./gradlew :gms:impl:build -Prest.model.compatibility=ignore