Gradle在执行单元测试时构建每个子项目

Gradle在执行单元测试时构建每个子项目,gradle,intellij-idea,gradlew,Gradle,Intellij Idea,Gradlew,我有一个项目由多个子项目组成,这些子项目在settings.gradle文件中定义 每当我运行其中一个项目的单元测试时,它总是再次“配置”和编译依赖模块,即使它们没有任何更改 这真的很痛苦,因为它需要一段时间才能完成。我以前在同一个项目中没有这个问题,但它突然出现了。有没有办法解决这个问题? 我使用intellij作为IDE,gradle作为构建。输出如下所示: > Configure project :xx1 compiling YYYY > Configure project :

我有一个项目由多个子项目组成,这些子项目在settings.gradle文件中定义

每当我运行其中一个项目的单元测试时,它总是再次“配置”和编译依赖模块,即使它们没有任何更改

这真的很痛苦,因为它需要一段时间才能完成。我以前在同一个项目中没有这个问题,但它突然出现了。有没有办法解决这个问题? 我使用intellij作为IDE,gradle作为构建。输出如下所示:

> Configure project :xx1
compiling YYYY
> Configure project :xx2
compiling YYYY
> Configure project :xx3
compiling YYYY
> Configure project :xx4
compiling YYYY

正如您可能知道的,任务只有在
最新
检查失败时才会运行。任务的
最新检查将

  • 获取当前任务输入的哈希值
  • 获取当前任务输出的哈希值
  • 将当前哈希值与任务上一次运行的哈希值进行比较
  • 只有当两个当前哈希值与以前的哈希值匹配时,该任务才被视为是最新的
尝试运行gradle并传递
-i
标志(或
--info
)以查看
最新检查的结果。我猜某个任务的输入/输出配置不正确,导致任务树中某个地方的
最新检查失败。也许您正在某处使用当前日期/时间作为任务输入?(不要这样做!)。可能有两个任务正在将文件复制到同一目录?(不要这样做)

验证生成的一个好方法是:

  • 干净利落
  • 在不清理的情况下再次运行生成

  • 在一个完美的世界中,第二次构建不会起任何作用。如果第二个版本执行任何任务,则可能存在一些配置不正确的任务输入/输出

    您是否在项目中的某个地方使用了
    dependsOn clean