2017-10-25 2 views
0

ich die wunderbare test-jar Anlage in Maven entdeckt haben: https://maven.apache.org/plugins/maven-jar-plugin/examples/create-test-jar.htmlInstallation und Bereitstellung von Maven Test-jar

Aber es kann so sein, dass ein Projekt den Test-Glas eines anderen Projekts verwenden muss. Von https://stackoverflow.com/a/6469256/421049 und Experimente, es scheint, dass die Verwendung von mvn install das Test-Glas nicht auf die lokale ~/.m2/repository installiert. Wie benutzt ein Projekt auf meiner Maschine die Testgläser eines anderen Projekts, das nicht im selben POM zusammengefasst ist?

Doch es scheint von Maven deploy not to upload test jar, dass die Bereitstellung eines Projekts in Maven Central in der Tat die Test-Jar bereitstellen? Also kann ich es auf Nexus bereitstellen, aber nicht lokal installieren? Und wenn ich es auf Nexus bereitstellen werde, wird mein lokales Projekt, das eine Abhängigkeit von <type>test-jar</type> verwendet, es auf Maven Central finden?

+0

Ich bin nicht sicher, was bringt Sie zu der Schlussfolgerung, dass das Test-Jar nicht installiert oder in ein Remote-Repository hochgeladen wurde? Abgesehen davon sollte die Beschreibung des Links für 'Maven deploy to upload test jar' nicht dazu dienen, das Hochladen des Test-jars in ein Remote-Repository zu verhindern ... basierend auf der Größe des resultierenden Jars ... etwas anderes ... – khmarbaise

+1

Für weitere Hilfe, posten Sie zuerst Ihre 'pom.xml'. – carlspring

+0

"Ich bin mir nicht sicher, was dich zu der Schlussfolgerung bringt, dass das Test-Jar nicht installiert ist ..." Ich öffnete meinen Verzeichnisbaum '~/.m2/repository 'und sah keine Testkrüge. Aber ich habe es nochmal überprüft und sie sind da, also habe ich vielleicht das erste Mal im falschen Verzeichnis gesucht. (Ich habe mehrere gleichnamige Projekte.) –

Antwort

0

Es stellt sich heraus, dass maven-jar-plugin das Test-Jar tatsächlich installiert (z. B. foo-1.2.3-tests.jar) in dem lokalen Maven-Repository ~/.m2/repository/.... Wunderbar!

Mein Problem ist, dass ich versehentlich die maven-jar-plugin in einem separaten Profil namens release konfiguriert hatte. (Ich hatte kopiert und an die falsche Stelle in meinem POM eingefügt.) Deshalb tauchte das Test-Jar nicht in meinem lokalen Repository nach einer mvn install auf, und deshalb tauchte es plötzlich später auf (nachdem ich -P release einmal im Test verwendet hatte), und ich dachte, ich hätte es gerade verpasst, als ich das erste Mal nachgesehen habe.

Ich verschiebe die maven-jar-plugin in den <build> Abschnitt und alles funktioniert gut: die Test-Jar wird in die lokale Maven-Repository mit mvn install.

Verwandte Themen