Was ist der Unterschied zwischen einem Snapshot- Repository und einem Release- Repository?
Dies bezieht sich auf das Einrichten von Repositorys (wie Artifactory, Nexus usw.)
Was ist der Unterschied zwischen einem Snapshot- Repository und einem Release- Repository?
Dies bezieht sich auf das Einrichten von Repositorys (wie Artifactory, Nexus usw.)
Antworten:
Artefakte freigeben
Hierbei handelt es sich um spezifische Releases zu bestimmten Zeitpunkten. Freigegebene Artefakte gelten als solide, stabil und dauerhaft, um sicherzustellen, dass von ihnen abhängige Builds im Laufe der Zeit wiederholbar sind. Freigegebene JAR-Artefakte sind mit PGP-Signaturen verknüpft, und Prüfsummen überprüfen sowohl die Authentizität als auch die Integrität des binären Software-Artefakts. Das Central Maven-Repository speichert Release-Artefakte.
Schnappschuss-Artefakte
Schnappschüsse erfassen eine laufende Arbeit und werden während der Entwicklung verwendet. Ein Snapshot-Artefakt hat sowohl eine Versionsnummer wie "1.3.0" oder "1.3" als auch einen Zeitstempel. Ein Snapshot-Artefakt für commons-lang 1.3.0 kann beispielsweise den Namen commons-lang-1.3.0-20090314.182342-1.jar haben.
Entnommen aus der Refcard
1.1.0.M5
oder 1.1.0.M4
eine Version des Schnappschusses?
Release-Repositorys enthalten Releases und Snapshot-Repositorys enthalten Snapshots. In Maven wird ein Snapshot als Artefakt mit einer Version definiert, die auf -SNAPSHOT endet. Bei der Bereitstellung wird der Snapshot in einen Zeitstempel umgewandelt. Per Definition sind Snapshots veränderlich, Releases unveränderlich. Aus diesem Grund können Sie sie bei Nexus separat speichern, da es Ihnen normalerweise egal ist, ob Sie Snapshots verlieren, aber es ist Ihnen egal, ob Sie Releases verlieren. Dies erleichtert die Bereinigung von Schnappschüssen erheblich.
Schnappschüsse sind eine gute Idee, die Versionsnummer als -SNAPSHOTS anzugeben. Sie befindet sich in der Entwicklung und kann jederzeit geändert werden.
Internes Repository ist das Release-Repository mit fester Versionsnummer. Sie können die SNAPSHOTS ändern, aber dieses Artefakt ändert sich nach seiner Veröffentlichung nie mehr.
Normalerweise haben wir in Maven zwei Arten von Builds:
1) Snapshot-Builds : SNAPSHOT ist die spezielle Version, die die aktuelle Bereitstellungskopie angibt, und keine reguläre, spezifische Version. Maven überprüft die Version für jeden Build im Remote-Repository. Die Snapshot-Builds sind nichts anderes als Entwicklungs-Builds.
2) Builds freigeben: Release bedeutet, dass der SNAPSHOT an der Versions-ID für den Build entfernt wird. Dies sind die regulären Build-Versionen.
Snapshot-Artefakte und Release-Artefakte werden auf Snapshot- bzw. Release-Repositorys übertragen.
SNAPSHOT bedeutet hier nicht wirklich EINEN Snapshot, der eingefroren ist und sich nicht ändert. SNAPSHOT deckt mehrere Snapshots ab, deren Änderungen nicht groß genug sind, um durch eine neue Versionsnummer dargestellt zu werden