gradle这个“建设”的任务混乱(gradle 'build' task conf

2019-07-22 05:12发布

您好我有多重的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(“构建”),dependsOn(“:建设”)或dependsOn(“:根:构建”)它告诉我

出了什么问题:执行失败的任务“:任务”。

无法确定任务的依赖关系“:buildroom”。

“基地”插件添加“组装”和“干净”的任务,但不建...

有小费吗?

Answer 1:

build任务由宣布java-base插件。 这可能是因为你的根项目不(直接或间接)适用于java-base ,因此不具有build任务。 这就是为什么dependsOn("build")还增加了一个任务相关的任务命名为build同一项目中,最终会导致一个错误。 defaultTasks是不同的:

  • 它只接受任务名称(而dependsOn也接受任务路径和Task的对象)。
  • 仿佛任务名称已在命令行中输入它的任务名称得到解决,以任务。 换句话说,所有的项目中搜索具有给定名称的任务,并返回组匹配的任务。


文章来源: gradle 'build' task confusion
标签: gradle