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

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

Barbara Streisand
Barbara StreisandOriginal
2024-10-26 17:44:02753Durchsuche

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 :

<code class="groovy">apply plugin: 'java'
dependencies {
  compile project(':ProjectA')
}</code>

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:

<code class="groovy">dependencies {
  ...
  testCompile project(':A').sourceSets.test.output
}</code>

Diese neue Abhängigkeit stellt sicher, dass der Testcode von Projekt B Zugriff auf die kompilierten Testklassen von Projekt A hat . Durch die Verwendung 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.

Das obige ist der detaillierte Inhalt vonWie löst man Testabhängigkeiten in Gradle-Konfigurationen mit mehreren Projekten?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn