¿Qué es una versión -SNAPSHOT en Maven?
Opciones
- Una release estable que nunca cambia tras publicarse
- Una versión de desarrollo que puede cambiar con el tiempo (Opción correcta)
- Una versión que no se puede construir con Maven ni Gradle
- Una copia de seguridad de la release en un repositorio
Respuesta
Una versión de desarrollo que puede cambiar; Maven puede volver a descargarla cuando se actualiza, a diferencia de una release inmutable
Por qué
Una versión como 1.2.0-SNAPSHOT significa "trabajo en curso hacia la 1.2.0". El artefacto con esa misma versión se puede reemplazar muchas veces.
Una versión de release como 1.2.0 nunca debe cambiar una vez publicada: quien dependa de ella obtiene exactamente los mismos bytes.
Buena práctica: nunca dependas de SNAPSHOTs en builds de producción, porque el build no es reproducible.
Recuerda
SNAPSHOT = trabajo en curso mutable; release = fija para siempre.