Die mvn install
wird nur Ihr Projekt in Ihrem lokalen Cache gesetzt, was bedeutet es für andere Projekte auf Ihrem Rechner es zur Verfügung stellt.
mvn deploy
werden die Artefakte in Ihrem Remote-Repository bereitstellen, das normalerweise ein Unternehmens-Repository-Manager ist.
Im Falle eines SNAPSHOT
bedeutet dies, dass dieses Artefakt noch nicht finalisiert wurde und unter Entwickler steht. Das bedeutet, dass Sie mehrere Zustände derselben Version wie 1.0.0-SNAPSHOT
erstellen können. Der Zeitstempel, der während der Bereitstellung an einen Repository-Manager erstellt wird, soll verschiedene Artefakte für die Entwicklung verfügbar machen. Sie können über -U
Option steuern, wenn Sie die neueste Version der SNAPSHOT verwenden möchten.
Nachdem Sie sich bereit fühlen, machen Sie eine so genannte Version, die die Version auf etwas wie 1.0.0
(ohne SNAPSHOT) setzt, die ebenfalls implementiert wird, aber in ein Release-Repository, das unveränderlich ist.
Außerdem Zeitstempel in Ihrem lokalen Cache mit $HOME/.m2/repository
nicht wirklich Sinn machen, weil Sie steuern können, wenn Sie ein Artefakt dort installieren und sonst niemand, und Sie sollten mit finalName
ändern Ursache verhindern dies nur für Ihren target
Ordner gedacht ist und nicht für Ihren lokalen Cache. Und schließlich macht die Verwendung des lokalen Cache für mvn deploy
keinen Sinn, was ist die Idee dahinter? Am besten ist es, einen Repository-Manager wie Nexus, Artifactory oder Archiva zu verwenden, insbesondere wenn Sie in einer Unternehmensumgebung arbeiten.
@khmarbaise Sind Sie sich bewusst, wo [Repository - SNAPSHOT Handhabung] (https://cwiki.apache.org/confluence/display/MAVENOLD/Repository+-+SNAPSHOT+Handling) integriert ist, oder können Sie es tun? –