简述
azkaban-plugins 是用ant构建的,既然ant已经是老式的工程构建工具,为什么不用maven,gradle替换掉它?我觉得是因为azkaban开发者们觉得目前还没有足够的需求,从ant转化成gradle,maven.我希望看我文章的人,都到ant-convert-gradle-issues提一下
准备
本人对ant并不熟悉,为了能开发azkaban-plugins和调试,我学习了一下ant.
构建ant工程都需要build.xml文件,包含元素project,target等,ant专注于构建,并不关心工程依赖问题,所以早期用ant,会结合ivy来进行网络依赖管理.但是azkaban-plugins完全只是用了ant.
工程结构整理
ide: intelij
依赖库:
- test-lib,包括mock,commons库等,用于测试
- extlib,包含azkaban,hive,log4j,velocity相关的库,
- lib,在plugins下面有crypto,hadoopsecuritymanager,hadoopsecuritymanager-common,hadoopsecuritymanager-yarn,hdfsviewer,javaviewer,jobsummary,jobtype模块,每个模块之间存在依赖关系,模块下也有lib库
其他:
intelij可以识别ant工程,但是没办法从build.xml中获取source root,test source root,resources,所有需要手动识别.
步骤
1.添加source root,test source root,resources,test resources,在plugins目录下的模块
2.添加依赖库
在工程设置中,将test-lib,extlib,lib设置到工程依赖库中.
完成以上两个步骤,就可以ide里面进行调试.
网友评论