Datahub 5.2 Legacy Flows 传递选项参数报错如何解决?
DataHub 5.2 Legacy Flows Gradle参数传递报错解决方案
你遇到的报错:
Task '.source=ABC' not found in root project
是旧版Gradle对命令行带特殊字符的项目属性解析异常导致的,可按以下步骤解决:
- 调整参数的书写位置:所有
-P开头的项目属性参数必须放在Gradle任务名之前,正确的命令结构如下:
不要将参数放在任务名之后,旧版本Gradle会将任务后带# 正确示例,参数放在hubRunFlow任务前 ./gradlew -Pdhf.source=ABC hubRunFlow.的参数误解析为子项目的任务路径,触发找不到任务的报错。 - 对参数添加引号包裹:如果调整位置后仍然报错,给整个属性参数加引号避免解析异常:
- Windows cmd环境:
gradlew "-Pdhf.source=ABC" hubRunFlow - Linux/Mac shell环境:
./gradlew '-Pdhf.source=ABC' hubRunFlow
- Windows cmd环境:
- 配置gradle.properties文件避免命令行传参:如果不想修改命令格式,可以直接在项目根目录的
gradle.properties文件中添加对应属性配置:
配置完成后直接执行Gradle任务即可,不需要再在命令行传递该参数。dhf.source=ABC - 验证参数是否生效:你可以在项目的
build.gradle文件中添加如下逻辑,确认参数被正确识别:
执行任务时如果控制台打印了对应的参数值,说明参数解析正常,不会再触发报错。if (project.hasProperty('dhf.source')) { println "已正确识别dhf.source参数:${project.property('dhf.source')}" }
内容的提问来源于stack exchange,提问作者ramz123
相关产品推荐
相关产品推荐

