Bei der Arbeit mit Multiprojekt-Builds in Gradle ist es wichtig, effektive Abhängigkeiten zwischen Testcode projektübergreifend herzustellen. Stellen Sie sich ein Szenario vor, in dem Projekt A und Projekt B vorhanden sind und Projekt B auf Komponenten von Projekt A angewiesen ist.
In dieser Situation könnte der build.gradle für Projekt B so aussehen :
apply plugin: 'java'
dependencies {
compile project(':ProjectA')
}
Die Aufgabe „compileTestJava“ schlägt jedoch beim Kompilieren von Testcode aus Projekt A fehl. Dies weist auf eine Lücke in der Konfiguration hin, die für den Zugriff auf Testabhängigkeiten aus dem anderen Projekt erforderlich ist.
Um dieses Problem zu beheben, kann build.gradle von Projekt B mit einer testCompile-Abhängigkeit aktualisiert werden:
dependencies {
...
testCompile project(':A').sourceSets.test.output
}
Diese neue Abhängigkeit stellt sicher, dass der Testcode von Projekt B Zugriff auf die kompilierten Testklassen von Projekt A hat. Mithilfe von sourceSets.test.output löst Gradle das Ausgabeverzeichnis auf, in dem Testklassen während des Builds platziert werden.
Diese Konfiguration wurde erfolgreich mit Gradle 1.7 getestet. Bitte beachten Sie, dass für Gradle-Versionen 5.6 und höher eine andere Lösung erforderlich ist und separat dokumentiert wird.
Haftungsausschluss: Alle bereitgestellten Ressourcen stammen teilweise aus dem Internet. Wenn eine Verletzung Ihres Urheberrechts oder anderer Rechte und Interessen vorliegt, erläutern Sie bitte die detaillierten Gründe und legen Sie einen Nachweis des Urheberrechts oder Ihrer Rechte und Interessen vor und senden Sie ihn dann an die E-Mail-Adresse: [email protected] Wir werden die Angelegenheit so schnell wie möglich für Sie erledigen.
Copyright© 2022 湘ICP备2022001581号-3