Ich benutze Maven, um ein Multi-Modul-Projekt zu erstellen. Mein Modul 2 hängt von Modul 1 src im Kompilierungsbereich und Modul 1-Tests im Testbereich ab.
Modul 2 -
<dependency>
<groupId>blah</groupId>
<artifactId>MODULE1</artifactId>
<version>blah</version>
<classifier>tests</classifier>
<scope>test</scope>
</dependency>
Das funktioniert gut. Angenommen, mein Modul 3 hängt von Module1 src ab und wird zur Kompilierungszeit getestet.
Modul 3 -
<dependency>
<groupId>blah</groupId>
<artifactId>MODULE1</artifactId>
<version>blah</version>
<classifier>tests</classifier>
<scope>compile</scope>
</dependency>
Wenn ich ausgeführt werde mvn clean install
, wird mein Build bis Modul 3 ausgeführt und schlägt bei Modul 3 fehl, da die Testabhängigkeit von Modul 1 nicht aufgelöst werden konnte. Dann mache ich mvn install
alleine ein Modul 3, gehe zurück und laufe mvn install
auf meinem übergeordneten POM, um es bauen zu lassen. Wie kann ich das beheben?
maven-2
maven-plugin
user209947
quelle
quelle
Antworten:
Ich habe Zweifel, was Sie versuchen, aber ich gehe davon aus, dass Sie die Tests, die Sie für ein Projekt (Modul 1) erstellt haben, in einem anderen wiederverwenden möchten. Wie im Hinweis am Ende des Handbuchs zur Verwendung der angehängten Tests erläutert :
Um kompilierte Tests in einer JAR zu verpacken und für die allgemeine Wiederverwendung bereitzustellen, konfigurieren Sie zunächst
maven-jar-plugin
Folgendes:Installieren / implementieren Sie dann das Test-JAR-Artefakt wie gewohnt (mit
mvn install
odermvn deploy
).Um die Test-JAR zu verwenden, müssen Sie eine Abhängigkeit mit einem angegebenen Typ angeben
test-jar
:quelle
In Bezug auf meinen Kommentar zur Pascals-Frage denke ich, dass ich eine passende Antwort gefunden habe:
Der Hauptunterschied hier, wie Sie hier sehen, ist das
<phase>
Tag.Ich werde das Test-Jar erstellen und es wird in der Kompilierungsphase der Tests und nicht nur nach der Paketphase verfügbar sein.
Funktioniert bei mir.
quelle
Wie https://maven.apache.org/plugins/maven-jar-plugin/examples/create-test-jar.html sagt:
Bitte lesen Sie diesen Artikel für Details.
quelle