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