当你有这样的块时:
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 文档说它
注册一组任务,这些任务负责将此源代码集编译到类目录中。路径按照
Task.dependsOn(java.lang.Object[])
进行评估。
这很好,但我有一个 Gradle 项目,当它不在dependsOn
列表中时,它似乎正在运行wsGen
任务。compiledBy
这是从哪里来的吗?
我不是试图用这个问题解决问题,而只是试图理解这个函数的机制。
是的,这就是它的来源,但不,这与compileJava
任务没有直接关系。实际上,compiledBy
选项设置表示源集输出的ConfigurableFileCollection
的builtBy
选项。JavaBasePlugin
添加的classes
任务取决于compileJava
任务、processResources
任务和所述ConfigurableFileCollection
,这反过来又会导致任务被执行,因为它是classes
任务的隐式传递依赖项。