Qual è la differenza tra un repository di snapshot e un repository di rilascio ?
Questo è con riferimento alla configurazione dei repository (come Artifactory, Nexus ecc.)
Qual è la differenza tra un repository di snapshot e un repository di rilascio ?
Questo è con riferimento alla configurazione dei repository (come Artifactory, Nexus ecc.)
Risposte:
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
1.1.0.M5
o 1.1.0.M4
una versione dell'istantanea?
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.
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.
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.
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