您好我有多项目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'&lt; - 默认任务被执行
当我从命令行调用'gradlew tasks'&lt; - 在'所有可从root项目运行的任务'下的任务时,我看到'build'
但是当我尝试添加dependsOn('build'),dependsOn(':build')或dependsOn(':root:build')它告诉我
出了什么问题:任务':tasks'的执行失败。
无法确定任务':buildroom'的依赖关系。
'base'插件添加'assemble'和'clean'任务但不构建...
任何提示?
答案 0 :(得分:12)
build
任务由java-base
插件声明。您的根项目可能(直接或间接)不适用java-base
,因此没有build
任务。这就是dependsOn("build")
,它在同一项目中为名为build
的任务添加任务依赖关系,最终导致错误。 defaultTasks
的不同之处在于:
dependsOn
也接受任务路径和Task
个对象)。