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如果你想探索更多。