我想在父 build.gradle 文件中创建一个任务,以该特定顺序从子项目中调用任务。 这是我在 build.gradle 文件中的任务定义,每个子项目的任务都已定义并可以正常工作。我可以从命令行调用每个单独的任务。 我希望能够从命令行调用此父任务,并且它按定义的顺序执行所有子项目任务。
apply plugin: 'java'
task buildAll (dependsOn:
[ project(':loadRemote').remoteLoadCleanCompileStage,
project(':load').remoteLoadCleanCompileStage,
project(':loadRemote').remoteLoadPackage,
project(':load').loadPackage
])
当我从命令行运行此任务时,出现错误:
无法获得以下未知属性“ remoteLoadCleanCompileStage” org.gradle.api.Project类型的项目':loadRemote'。
这不是在gradle中允许吗?
答案 0 :(得分:0)
您应将buildAll
任务定义包装在projectsEvaluated
子句中。确实,当您在父代构建中定义任务时,子项目尚未分析,因此其任务尚不明确。
gradle.projectsEvaluated {
task buildAll (dependsOn:
[ project(':loadRemote').remoteLoadCleanCompileStage,
project(':load').remoteLoadCleanCompileStage,
project(':loadRemote').remoteLoadPackage,
project(':load').loadPackage
])
}