„Wenn ein Arbeiter seine Arbeit gut machen will, muss er zuerst seine Werkzeuge schärfen.“ – Konfuzius, „Die Gespräche des Konfuzius. Lu Linggong“
Titelseite > Programmierung > Wie löst man Testabhängigkeiten in Gradle-Konfigurationen mit mehreren Projekten?

Wie löst man Testabhängigkeiten in Gradle-Konfigurationen mit mehreren Projekten?

Veröffentlicht am 08.11.2024
Durchsuche:149

How to Resolve Test Dependencies in Multi-Project Gradle Configurations?

Auflösen von Testabhängigkeiten in Multiprojekt-Gradle-Konfigurationen

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.

Problemstellung

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.

Lösung

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.

Neuestes Tutorial Mehr>

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