Wie kann ich das Maven-Release-Plugin zum Laufen bringen, ohne die Tests auszulösen?
Ich habe versucht
-Dmaven.test.skip=true
und
-DskipTests
und
-DpreparationGoals=clean
... aber keine Arbeit.
Ja, ich weiß, ich sollte nicht freigeben, wenn die Tests nicht bestanden werden, aber ich habe keine Kontrolle darüber, dass meine Mitarbeiter zuverlässige Tests schreiben.
2
. Ich habe stundenlang versucht, dies richtig zu machen ... aber 1. Habe ich etwas in der Dokumentation verpasst oder fehlt in der MVN-Dokumentation etwas? 2. Ich hatte<skipTests>true</skipTests>
in meiner Firma POM konfiguriert. Hat immer noch nicht funktioniert. Was funktioniert hat, war Ihre Lösung.-Darguments="..."
Übergibt Argumente an den Forked Maven-Prozess. Es ist jedoch wichtig zu wissen, dass hier zwei verschiedene Schalter verwendet werden. Der-DskipTests
Maven zwingt Maven, keine Tests auszuführen, aber die Tests werden noch kompiliert (dies ist wichtig, wenn Sie Abhängigkeiten von einem Test-Jar-Typ haben). Die-Dmaven.test.skip=true
Kräfte müssen nicht einmal die Tests zusammenstellen, was bedeutet, dass keine Testgläser erzeugt werden.Sie müssen also verwenden
-Darguments
, aber nur Tests überspringen, die die Verwendung ausführenskipTests
, um die Kompilierung der Verwendung zu stoppenmaven.test.skip
.quelle
Wenn Sie nur Integrationstests überspringen möchten, gehen Sie folgendermaßen vor:
quelle
Sie haben zu unterschiedliche Möglichkeiten, um Tests mit dem Release-Plugin zu vermeiden und zu überspringen
Beispiel:
mvn -X -Darguments="-Dmaven.javadoc.skip=true -Dmaven.test.skipTests=true -Dmaven.test.skip=true" -P release-mode release:prepare
-Die zweite besteht darin, diese Argumente für Ihre pom.xml im Build wie folgt auszuführen:
Beachten Sie, dass die zweite Methode die erste überschreibt.
Ich habe Ihnen empfohlen, die Freigabe zuerst für eine einzelne Aktion vorzubereiten. Anschließend können Sie die Datei release.properties im Arbeitsverzeichnis bearbeiten und die
exec.additionalArguments
Eigenschaften überprüfen, wenn Ihre Argumente vorhanden sind. Es wird so aussehen :exec.additionalArguments=-Dmaven.javadoc.skip\=true -Dmaven.test.skipTests\=true -Dmaven.test.skip\=true -P release-mode
.Nachdem Sie die Freigabe durchführen können.
quelle
Um den gesamten Komponententest zu überspringen, wird ein Argument verwendet
Wenn Sie also den Unit-Test überspringen möchten, wird dies gelöst
oder alternativ können Sie skipTests im Maven-Surefire-Plugin definieren
quelle
Kein Maven-Plug-In löst buchstäblich die Kompilierung oder Ausführung von Tests aus. Es sind die Maven-Lebenszyklusphasen, die die Ausführung eines oder mehrerer Plug-Ins auslösen, wenn diese Ziele an eine bestimmte Phase gebunden haben.
Es würde also ausreichen, nur ein einziges Plug-In-Ziel auszuführen, ohne Tests auszuführen:
oder mit Projektaufbau und Verpackung kombinieren:
quelle