如何解决Tez源码构建时tez-dag阶段的Maven构建错误?
Tez源码构建tez-dag阶段错误分析与解决
错误原因
从编译报错信息来看,核心问题是编译tez-dag模块时找不到org.apache.tez.dag.api.VertexDescriptor类的isDynamic()方法,具体诱因包括:
- 依赖的tez-api模块未完成编译,或tez-dag与tez-api的代码版本不匹配(比如源码checkout分支不一致、部分模块代码缺失)
- 直接单独编译tez-dag,未先构建其依赖的上游模块
解决办法
- 全量编译项目:回到Tez源码根目录,执行以下命令编译所有模块,自动处理依赖顺序:
mvn clean install -DskipTests - 针对性编译依赖模块:如果仅需编译tez-dag,先编译其依赖的tez-api及关联模块,再单独编译tez-dag:
mvn clean install -DskipTests -pl tez-api -am mvn clean install -DskipTests -pl tez-dag - 校验源码分支:确保checkout的是Tez官方稳定分支(如
tez-0.10.1),避免使用未完成开发的快照分支或代码缺失的分支
内容的提问来源于stack exchange,提问作者fei yang
相关产品推荐
相关产品推荐

