Repository di snapshot di Maven vs Repository di rilascio


103

Qual è la differenza tra un repository di snapshot e un repository di rilascio ?

Questo è con riferimento alla configurazione dei repository (come Artifactory, Nexus ecc.)


A cosa si riferisce? Controllo della fonte? Non è una terminologia standard per quanto ne so, ma potrei immaginare che un'istantanea sia stata utilizzata come immagine di un albero dei sorgenti in un determinato momento (probabilmente per uso interno), mentre per il codice rilasciato esternamente viene utilizzata una versione.
1800 INFORMAZIONI

Sembra che tu stia chiedendo di Maven (lo strumento di costruzione). Forse dovresti includerlo nella domanda e nei tag.
bendin

Risposte:


67

Rilascia artefatti

Queste sono versioni specifiche e temporali. Gli artefatti rilasciati sono considerati solidi, stabili e perpetui al fine di garantire che le build che dipendono da essi siano ripetibili nel tempo. Gli artefatti JAR rilasciati sono associati alle firme PGP e i checksum verificano sia l'autenticità che l'integrità dell'artefatto software binario. Il repository Central Maven archivia gli artefatti di rilascio.

Artefatti snapshot

Le istantanee catturano un lavoro in corso e vengono utilizzate durante lo sviluppo. Un artefatto Snapshot ha sia un numero di versione come "1.3.0" o "1.3" e un timestamp. Ad esempio, un artefatto di snapshot per commons-lang 1.3.0 potrebbe avere il nome commons-lang-1.3.0-20090314.182342-1.jar.

Tratto da refcard


Sayat, è 1.1.0.M5 o 1.1.0.M4 una versione dell'istantanea?
Alexander Suraphel

4
Questo definisce cosa sono gli artefatti di release e snapshot. Ma: sono necessari due repository distinti?
dna

1
Ho trovato informazioni ben scritte su docs.oracle.com/middleware/1212/core/MAVEN/…
Yoav Epstein

1
Questo non risponde alla domanda, la domanda riguarda la distinzione tra repository di rilascio e snapshot (non artefatti).
mks-d

1
@ mks-d Buona osservazione ma è difficile capire un repository di qualcosa senza prima capire cosa sia quel "qualcosa". :) stackoverflow.com/a/5901460
DATV

86

I repository di rilascio contengono le versioni e i repository di snapshot contengono le istantanee. In maven un'istantanea è definita come un artefatto con una versione che termina con -SNAPSHOT. Quando viene distribuito, lo snapshot viene trasformato in un timestamp. Per definizione, le istantanee sono modificabili, i rilasci sono immutabili. Questo è il motivo per cui Nexus ti fa archiviare separatamente perché di solito non ti interessa se perdi le istantanee, ma ti importa se perdi le versioni. Rende la pulizia delle istantanee molto più facile da gestire in questo modo.


12
Grazie per "Quando viene distribuito, lo SNAPSHOT viene trasformato in un timestamp" .
datv

quando ho configurato il lavoro su jenkins e utilizzo gli artefatti di caricamento nel repository di snapshot nexus, non sono riuscito a vedere più di uno snapshot. Generalmente quando apportiamo modifiche al progetto e attiviamo una build, verrebbe creato un nuovo artefatto. Anche se questo sta accadendo ma lo sta rinominando con lo stesso 1.0-SNAPSHOT piuttosto dovrebbe
chiamarlo

avevo usato nella sezione post build di jenkins, distribuivo artefatti nel repository Maven e lo avevo configurato come repo snapshot di nexus.
frp farhan

3

Le istantanee sono un'idea perfetta per dare il numero di versione come -SNAPSHOTS, è in fase di sviluppo, può cambiare in qualsiasi momento.

Il repository interno è il repository di rilascio con numero di versione fisso. È possibile modificare gli SNAPSHOT, ma tale artefatto non cambia mai dopo essere stato rilasciato.


Per "è in fase di sviluppo, può cambiare in qualsiasi momento" (per -SNAPSHOT)
datv

3

Di solito in Maven abbiamo due tipi di build:

1) Build snapshot : SNAPSHOT è la versione speciale che indica la copia di distribuzione corrente e non una versione normale e specifica. Maven controlla la versione per ogni build nel repository remoto. Le build snapshot non sono altro che build di sviluppo.

2) Release build : Release significa rimuovere lo SNAPSHOT dall'ID versione per la build. Queste sono le versioni di build regolari.

Gli artefatti dell'istantanea e gli artefatti del rilascio vengono inviati rispettivamente agli snapshot e agli archivi di rilascio.


0

SNAPSHOT qui non significa davvero UN'istantanea che è congelata e non cambierà, SNAPSHOT copre diverse istantanee le cui modifiche non sono abbastanza grandi per essere rappresentate da un nuovo numero di versione

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.