gradle 'build' 任务困惑

标签 gradle

嗨,我有多项目 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/

    相关文章:

    android - 错误 com.google.android.gms/play-services/8.4.0/gradle :2. 0.0-alpha5

    java - 新的 libgdx 安装程序构建一直失败

    android - Android Studio 中的 Base64 依赖问题

    java - 使用 build.gradle 将 twilio java 库放入 android 项目的问题

    android - 即使下载了安装工具,也出现未安装错误

    Gradle - 在每个任务的基础上捕获写入 out/err 的输出

    android - 包含 Gradle 模块时出错

    maven - Gradle下载repo1.maven.org卡住了

    android - 模块的依赖项详细信息多次显示相同的依赖项

    plugins - 如何使用 Gradle Distribution 插件挑选 ZIP 内容?