嗨,我有多项目 gradle 设置
-root_project
|-sub_project1
|-sub_project2
|-sub_project3
一切都很好,但有一件事让我发疯。在我的构建脚本中:defaultTasks 'build' <- this works just fine
task buildroom (description: 'This task is invoked by build room script, invokes default task plus publishes artifacts') {
// dependsOn('build') <-- this doesn't work
// alternative
dependsOn(":sub_project1:build")
dependsOn(":sub_project2:build")
当我从命令行“gradlew”调用时 <- 默认任务被执行当我从命令行调用“gradlew 任务”<-“所有可从根项目运行的任务”下的任务时,我看到“构建”
但是当我尝试添加dependsOn('build')、dependsOn(':build') 或dependsOn(':root:build') 时,它告诉我
What went wrong: Execution failed for task ':tasks'.
Could not determine the dependencies of task ':buildroom'.
'base' 插件添加了 'assemble' 和 'clean' 任务但不构建...
有小费吗?
最佳答案
build
任务由 java-base
声明插入。您的根项目很可能(直接或间接)不适用 java-base
因此没有 build
任务。这就是为什么dependsOn("build")
,它添加了对名为 build
的任务的任务依赖关系在同一个项目中,最终导致错误。 defaultTasks
不同之处在于:
dependsOn
也接受任务路径和 Task
对象)。 关于gradle 'build' 任务困惑,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15535258/