当您遇到这样的障碍时:

sourceSets {
  main {
    java {
      srcDir 'spec/src'
      srcDir 'shared/src'
      srcDir 'server/src'
    }
    resources {
      srcDir 'spec/src'
      srcDir 'shared/src'
      srcDir 'server/src'
    }
    compiledBy 'wsGen'
  }
}
compiledBy完成什么工作?它仅用于缓存/性能吗?是否会使任务作为compileJava任务的一部分运行? API文档说



很好,但是我有一个Gradle项目,当它不在wsGen列表中时,似乎正在运行dependsOn任务。 compiledBy是哪里来的?

我只是想了解此功能的机制,而不是尝试解决此问题的问题。

最佳答案

是的,这是它的来源,但不是,这与compileJava任务没有直接关系。有效地,compiledBy选项设置代表源集输出的builtByConfigurableFileCollection选项。由classes添加的JavaBasePlugin任务取决于compileJava任务,processResources任务和所述ConfigurableFileCollection,这又导致该任务被执行,因为它是classes任务的隐式传递依赖项。

10-04 10:08