azkaban编译安装采坑记录
1、下载相应的azkaban的Linux版本的压缩包
# 下载
wget https://github.com/azkaban/azkaban/archive/3.70.0.tar.gz
# 解压
tar -zxvf azkaban-3.70.0.tar.gz
github如果过慢的话可以同步到码云仓库,直接下载
2、需提前下载好gradle打包工具,不然安装时gradle-wrapper.properties里面的连接下载非常慢
wget https://services.gradle.org/distributions/gradle-4.6-all.zip
或者可以百度云下载
链接:https://pan.baidu.com/s/1nnHBRmS8qvLcCxXzRnN0NA
提取码:w5hj
然后将下载好的gradle的zip包放在和gradle-wrapper.properties等同路径下
然后在gradle-wrapper.properties最后一行改成
distributionUrl=gradle-4.6-all.zip
3、修改gradle的build.gradle的仓库地址为阿里云仓库,不然一些组件下载的非常慢
即将
repositories {
mavenCentral()
maven {
url 'https://plugins.gradle.org/m2/'
}
}
改成
repositories {
maven {
url 'https://maven.aliyun.com/repository/public/'
}
mavenCentral()
maven {
url 'https://maven.aliyun.com/repository/gradle-plugin/'
}
}
4、需要安装git
yum install git
5、开始编译,并跳过测试阶段
./gradlew build installDist -x test
不出意外的话,编译成功后会有 BUILD SUCCESSFUL提示
=====================================================================================
但往往都是有意外发生的
一般以上命令在配置阶段都不会有问题,在编译阶段就会出现各种各样的问题
不过好在依赖下载好的都会放在缓存中,失败的话重试几次编译命令,一般可以解决一部分问题
错误1 测试阶段会出现几个跳过和测试失败的情况
此时必须要跳过测试
错误2:
> Task :azkaban-web-server:npmSetup
npm ERR! cb() never called!
npm ERR! This is an error with npm itself. Please report this error at:
npm ERR! <https://github.com/npm/npm/issues>
npm ERR! A complete log of this run can be found in:
npm ERR! /root/.npm/_logs/2020-08-07T03_15_34_152Z-debug.log
FAILURE: Build failed with an exception.
* What went wrong:
Execution failed for task ':azkaban-web-server:npmSetup'.
> Process 'command '/usr/local/azkaban-3.70.0/azkaban-web-server/build/nodejs/node-v8.10.0-linux-x64/bin/node'' finished with non-zero exit value 1
这个应该是azkaban-web-server这个模块报错
然后查看
/usr/local/azkaban-3.70.0/azkaban-web-server/build/nodejs/node-v8.10.0-linux-x64/bin/node
或
/usr/local/azkaban-3.70.0/azkaban-web-server/.gradle/npm/npm-v5.6.0
这个路径发现根本没有node的相关命令,即没有node,npm这些,所以执行npm install才会报错
这里我认为的是node作为gradle的插件可能下载非常缓慢,导致下载不了完整的包
我引入外在的node作为npm工具
最好是根据版本来下载
下载好后 配置环境变量
然后cd进azkaban-web-server
修改build.gradle文件
把这块代码注释掉或者删掉,不然编译的时候还是会去自己安装node
而且必须要设置全局变量,不然后面的task找不到node的命令
在azkaban-web-server,执行
npm install
将所有前端组件加载到node_module模块中
最后再执行
./gradlew build installDist -x test
应该就没问题了
最后出现
就表示编译成功了
纪念一下,表示搞了很久,实在是太菜了