mvn release: vorbereiten
Es fordert mich ständig auf, Snapshot-Abhängigkeiten aufzulösen. Gibt es eine Möglichkeit, dies im Batch-Modus zu tun, so dass Maven automatisch die zugehörige Version verwendet. wenn eine Abhängigkeit 1.0.0-SNAPSHOT ist, wird diese Abhängigkeit automatisch auf die Version 1.0.0 aktualisiert?
%Vor%Sie können die SNAPSHOTs über das versions-maven-plugin aktualisieren die Veröffentlichung.
Beachten Sie, dass Sie die Überprüfung von Maven ignore SNAPSHOT-Abhängigkeiten konfigurieren können, indem Sie allowTimestampedSnapshots , nach maven-release-plugin Dokumentation:
allowTimestampedSnapshots:
Gibt an, ob zeitgestempelte SNAPSHOT-Abhängigkeiten zulässig sind. Standard ist, wenn ein SNAPSHOT gefunden wird.
- Geben Sie Folgendes ein: boolean
- Seit: 2.0-beta-7
- Erforderlich: Nein
- Ausdruck: $ {ignoreSnapshots}
- Standard: false
Oder führen Sie einfach den folgenden Befehl aus:
mvn release: Vorbereitung -DignoreSnapshots = true
Es wird jedoch empfohlen, alle SNAPSHOT-Abhängigkeiten vor der endgültigen Veröffentlichung zu lösen, da dies die Konvention ist, die von den meisten Benutzern verwendet wird. Sie sollten es immer manuell in der Entwicklungsphase berücksichtigen, anstatt es automatisch in der Release-Phase zu stapeln, da die Abhängigkeiten des Change / Upgrade-Projekts (entweder Ihre eigene oder die von Drittanbietern) manchmal Fehler oder Inkompatibilitäten verursachen und Ihr Projekt unterbrechen und repariere sie, bevor du die endgültige Veröffentlichung machst.
Mit anderen Worten, die Abhängigkeitsauflösung ist keine Aufgabe, die in der Release-Phase erledigt werden sollte. Außerdem ist es keine Aufgabe, die automatisch ohne die Aufmerksamkeit des Entwicklers erledigt werden sollte.
Wenn Ihre Abhängigkeit ein eigenes Programm ist und ihr Lebenszyklus eng mit demjenigen verknüpft ist, den Sie veröffentlichen möchten, denken Sie vielleicht an ein Multimodul-Projekt: Ссылка . Maven Release Plugin würde die Version für alle Abhängigkeiten Module aktualisieren.
Wenn nicht, machst du wahrscheinlich etwas, was du nicht tun solltest. Wenn Sie nur 1.0.0-SNAPSHOT zu 1.0.0 ändern, ist nicht sichergestellt, dass Ihre App weiterhin funktioniert. So denkt Maven nicht!
Weitere Überlegungen
Das Maven-Release-Plugin überprüft, ob Sie eine Snapshot-Abhängigkeit verwenden, da Snapshot per Definition instabile Versionen sind. Es kann sich mit der Zeit ändern. Das heißt, was heute funktionierte, könnte morgen nicht funktionieren.
Freigeben bedeutet, dass Ihre Version stabil ist und der Build jederzeit ohne Änderungen reproduziert werden kann. Mit der Snapshot-Version wird diese Assertion falsch.
Also,