【问题标题】:Gradle task don't run in all subprojectsGradle 任务不会在所有子项目中运行
【发布时间】:2020-09-06 21:29:06
【问题描述】:

我有以下多模块项目结构。

Root project 'reports-be'
+--- Project ':auth'
+--- Project ':builder'
|    +--- Project ':builder:base'
|    \--- Project ':builder:reporting'
\--- Project ':common'

当我为 /builder 子项目运行build 任务时,我希望所有子项目(对于:builder:base:builder:reporting)都会执行build 任务。

gradle clean :builder:build

但 gradle 仅对子项目 :builder 执行 build 任务。 根据Gradle documentationbuild的任务应该完成所有子项目。

为什么没有发生?

附:我发现命令gradle -p builder clean build 可以正常工作。但我真的不明白第一次提到的 gradle 任务有什么问题。

附言我在每个子项目中都有build.gradle,我的settings.gradle 看起来像

rootProject.name = 'reports-be'
include 'common'
include 'builder'
include 'auth'
include 'builder:base'
include 'builder:reporting'

【问题讨论】:

    标签: gradle multi-project gradle-task


    【解决方案1】:

    :builder:build 是项目:builder 中任务build 的限定任务名称,因此只会执行这一项任务(及其依赖项)。所有(子)项目中的执行仅适用于不合格的任务名称build。您可以切换到builder 目录并从那里运行gradle build,但是如果您想在同一个调用中为所有项目运行clean,这种方法将不起作用,并且在使用包装器时它有点难看(@ 987654328@)。据我所知,您的用例没有直接的解决方案。

    如果我没听错的话,:builder 项目只是一个用于组织目的的虚拟项目,不包含任何实际源代码或任何其他要构建的东西。在这种情况下,您可以使用builder/build.gradle 中的任务依赖项来解决您的问题:

    task build {
        dependsOn ':builder:base:build', ':builder:reporting:build'
    }
    

    【讨论】:

    • 感谢您的解释。这是我希望知道的!将我的 2 美分用于您的解释。对于 Gradle 6.3 正确的命令:build { dependsOn ':builder:base:build', ':builder:reporting:build' }
    • 也可以切换目录并运行gradle clean build(不是gradlew
    • 是的,但前提是机器上安装了gradle。如果使用包装器,通常不提供。
    • 如果它已经存在,你只能参考任务build而不创建它(就像你的例子一样),可能是因为你应用了java插件。
    • 再次感谢您。你是绝对正确的,我已经在我的机器上安装了gradle 并将java 插件应用于我的项目:)
    【解决方案2】:

    我找到了三种可能的解决方案:

    1。 gradle -p builder clean build

    2:

    cd ./builder
    gradle clean build
    

    3。为 builder/build.gradle 添加修改(适用于 Gradle 6.3):

    build {
        dependsOn ':builder:base:build', ':builder:reporting:build'
    }
    

    然后从根项目目录运行gradle clean build。 感谢您提供此解决方案Lukas Korfer answer

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-02-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-01-18
      • 2017-05-02
      相关资源
      最近更新 更多