1. 主要目的
在Windows下,使用IDEA开发工具,打开azkaban源代码的操作步骤的说明。
用于测试、开发环境搭建、源代码查看、二次开发。
在整个过程中,对相关的gradle构建工具、IDEA工具的操作及流程说明。新手可参考此文档能快速操作。
构建过程中,可能碰到的异常及处理方式。
2. 环境依赖
2.1. 安装git工具
下载并安装git工具。安装网址参考:https://blog.csdn.net/mukes/article/details/115693833
2.2.IDEA的gradle配置
选择:文件-->设置...
2、配置Gradle用户主目录,如:D:/gradle/repository。
此目录为构建工具的本地库地址,用于存放下载后的jar文件。
3.Azkaban开发环境构建
在window下操作。
3.1. 下载源码
3.1.1.git下载方式:
下载并安装git工具,参考:https://blog.csdn.net/mukes/article/details/115693833
新建azkaban目录,如:azkaban_main,运行以下命令:
git clone https://github.com/azkaban/azkaban.git
3.1.2. 手工下载源代码方式:
下载地址:https://codeload.github.com/azkaban/azkaban/tar.gz/refs/tags/3.88.0
右击,解压azkaban-3.88.0.tar.gz文件。可修改目录名为:azkaban-main。
解压后目录结构如下:
2.2. IDEA工具加载azkaban源码
2.2.1.新建源项目
在IDEA工具中,选择菜单:文件-->新建-->从现有源项目...
2.2.2.选择build.gradle文件
在弹开的窗口中,选择D:\workspace\azkaban-3.88.0\azkaban-main\build.gradle文件。
2.2.3. 工程创建完成
加截完成后,IDEA的效果如下:
2.3. Gradle构建项目
2.3.1. 展开Gradle操作界面
点击IDEA的右上角“Gradle”,展开窗口,界面如下:
2.3.2. 点击“重新加载所有Gradle项目”
运行完成后,将出现“Negative time”异常。先忽略此异常,继续下一步操作。
2.3.3. 配置阿里云镜像仓库
打开build.gradle文件,为加快依赖文件的下载,配置阿里云镜像仓库,添加如下圈圈的配置内容:
2.3.4. 下载工程所需要的jar文件。
右击项目,选择“刷新Gradle依赖项”,下载工程所需要的jar文件。
所依赖的文件比较下,下载需要一定的耗时。
下载的jar文件(约1.3G的大小),取决于build.gradle文件中的配置项:“ext.deps”。
2.4. IDEA运行环境配置
2.4.1. 统一各模块的配置文件
1、在D:\workspace\azkaban-3.88.0\azkaban-main下,新建目录conf,用于存放统一的配置文件。
2、将D:\workspace\azkaban-3.88.0\azkaban-main\azkaban-web-server\src\main\resources\conf下的文件,复制到D:\workspace\azkaban-3.88.0\azkaban-main\conf\下。
2.4.2. AzkabanWebServer.java的运行参数
1、在IDEA中,右击AzkabanWebServer.java类,进行运行属性的设置。
azkaban-web-server\src\main\java\azkaban\webapp\AzkabanWebServer.java
2、VM options:
-Djava.io.tmpdir=D:\workspace\azkaban-3.88.0\azkaban-main\temp -Dlog4j.cnotallow=file:D:\workspace\azkaban-3.88.0\azkaban-main\conf\log4j.properties -Dserverpath=D:\workspace\azkaban-3.88.0\azkaban-main\azkaban-web-server\build\install\azkaban-web-server
3、Program arguments:
-conf D:\workspace\azkaban-3.88.0\azkaban-main\conf
2.4.3. AzkabanExecServer.java的运行参数
1、在IDEA中,右击AzkabanExecServer.java类,进行运行属性的设置。
azkaban-exec-server\src\main\java\azkaban\webapp\AzkabanExecServer.java
2、VM options:
-Djava.io.tmpdir=D:\workspace\azkaban-3.88.0\azkaban-main\temp -Dlog4j.cnotallow=file:D:\workspace\azkaban-3.88.0\azkaban-main\conf\log4j.properties -Dserverpath=D:\workspace\azkaban-3.88.0\azkaban-main\azkaban-exec-server\build\install\azkaban-exec-server
3、Program arguments:
-conf D:\workspace\azkaban-3.88.0\azkaban-main\conf
2.4.4.配置文件azkaban.properties的修改
修改:D:\workspace\azkaban-3.88.0\azkaban-main\azkaban.properties。
# WEB工具的根目录路径配置
web.resource.dir=E:\\azkaban-3.88.0\\azkaban-main\\azkaban-web-server\\src\\web
# 时区配置
default.timezone.id=Asia/Shanghai
...
# 数据库连接配置
database.type=mysql
mysql.port=3308
mysql.host=10.133.11.11
mysql.database=azkaban
mysql.user=root
mysql.password=jian@1122
mysql.numcnotallow=100
2.5. 构建过程中的异常及处理
2.5.1. mysql数据库版本差异而导致运行异常。
azkaban自带的mysql jdbc驱动,版本是:5.1.28,而我本地安装的mysql,是8.0.30版本。
数据库版本或驱动,引起的异常类型有:
java.math.BigInteger cannot be cast to java.lang.Long异常报错解决方法
Caused by: java.io.IOException: CreateProcess error=2, 系统找不到指定的文件
处理方式:
1、修改build.gradle文件
mysqlConnector : 'mysql:mysql-connector-java:5.1.28',
改为:
mysqlConnector : 'mysql:mysql-connector-java:8.0.16',
2、重新构建gradle项目
2.5.2. 构建环境异常
构建环境没配置好,或依赖包没下载,提示的异常:
1、package org.assertj.core.util does not exist
2、java: 找不到符号符号:类 xxx位置:程序包 xxx.xxx
标签:java,3.88,IDEA,azkaban,workspace,debug,main,Azkaban From: https://blog.51cto.com/u_15891458/5931263