0
Gradle java插件的compileJava
任务是否依赖于我创建的任何源集的compileSourceSetJava任务?或者我需要手动使用dependsOn来确保所有的源代码集都在编译时运行compileJava?va`?Source set编译任务是否自动依赖于普通的compileJava任务? Gradle
Gradle java插件的compileJava
任务是否依赖于我创建的任何源集的compileSourceSetJava任务?或者我需要手动使用dependsOn来确保所有的源代码集都在编译时运行compileJava?va`?Source set编译任务是否自动依赖于普通的compileJava任务? Gradle
我相信它不会自动依赖任何东西。如果你只是创建一个空的源集,那就是 - 一组源。但取决于您的使用情况,可能存在隐式依赖性。请看下面的脚本的gradle:
apply plugin: "java"
sourceSets {
integrationTest {
java {
compileClasspath += main.output
runtimeClasspath += main.output
}
}
}
configurations {
integrationTestCompile.extendsFrom testCompile
integrationTestRuntime.extendsFrom testRuntime
}
task integrationTest(type: Test) {
testClassesDir = project.sourceSets.integrationTest.output.classesDir
classpath = project.sourceSets.integrationTest.runtimeClasspath
}
因为integrationTest
源集涉及main
Java源代码集,gradle这个上自动创建compileJava
(和processResources
)的依赖。
所以答案是“这取决于”(双关语不打算)。根据您如何定义源集和配置,可能存在隐式依赖关系。但是,如果您未定义两个源集之间的任何关系,则没有理由自动创建任何依赖关系。
这是一个不错的gradle plugin for generating task graphs如果你想探索更多。