Maven e instantáneas?

Estoy trabajando en un proyecto rápido, de los cuales, estoy trabajando directamente en un module que cambia continuamente. Otros tienen una dependencia directa del module y, como tal, apagué la interfaz pública y la implementé en nuestro repository local de Nexus como 0.0-SNAPSHOT para su uso.

Ahora que casi he completado mi primera iteración del module, he intentado volver a implementar el artefacto actualizado. Al leer acerca de las instantáneas, otros afirman que una instantánea debe representar el tronco principal actual. ¿Es esto cierto?

Maven aumenta automáticamente la versión de mi instantánea al volver a implementarla, así que, yendo desde 0.0-SNAPSHOT , sigo estando en 0.0-SNAPSHOT , solo que es la iteración 3 o 4 de la misma instantánea. ¿Cuándo debería pasar a 0.1-SNAPSHOT ? ¿Existe un complemento que pueda usar para automatizar el cambio de versión, en lugar de editar manualmente mi pom?

Después de las testings de integración y la implementación de nuestra primera versión del sistema, 1.0-RELEASE , ¿cómo debería avanzar mi module? ¿Debo mover mi module a 1.0-SNAPSHOT y continuar al respecto? ¿Hay alguna metodología que se debe seguir o se deja a discreción del desarrollador?

La notación XYZ-SNAPSHOT identifica las versiones temporales que conducen al lanzamiento de XYZ, por lo que generalmente no se mueve de XYZ-SNAPSHOT a XYZ + 1-SNAPSHOT a less que libere XYZ. Si cumple con esta convención, el complemento maven-release-plugin puede ayudarlo con el process de lanzamiento completo.

Tenga en count que la convención Maven más común utiliza identificadores de lanzamiento de 3 numbers sin ningún sufijo (es decir, no -RELEASE). Los sufijos se usan generalmente para distinguir variantes de la misma versión.

Maven es todo acerca de las convenciones, por lo que hay pocas posibilidades de que llegue muy lejos sin leer sobre ello: este libro es un buen punto de partida.

Para actualizar su versión de POM sin actualizar manualmente, puede echarle un vistazo al complemento de Liberación de Maven (aunque me escribí un pequeño script para hacer la actualización de POM porque el complemento de Release no encaja tan bien en mi flujo de trabajo)

Luego viene a tu número de versión. Es más un problema de procedimiento de liberación. Normalmente, una versión planificada se indica mediante el incremento de la versión mayor o menor en el número de versión. La versión de SNAPSHOT indica que cierta versión está en progreso. Por ejemplo, preferiría hacer algo como esto para tu caso:

Supongamos que estoy planeando liberar la primera iteración como 0.1, luego haré que mi troncal de cabeza en SCM (por ejemplo, tronco en SVN) con 0.1-SNAPSHOT como versión. Lo que denota que todo desarrollo está de hecho contribuyendo al lanzamiento de la versión 0.1. Al finalizar, actualizaré la versión de POM de 0.1-SNAPSHOT a 0.1, realizaré una versión real de la versión 0.1 (incluida la versión de ramificación, labeldo, implementación del artefacto) y luego cambiaré la versión de POM a SNAPSHOT de la próxima versión planificada (para ejemplo, 0.2-SNAPSHOT).

Del mismo modo, después de liberar 1.0 (o 1.0-RELEASE en su ejemplo), la versión de POM en el tronco principal debe actualizarse a una instantánea de su próxima versión, por ejemplo, 1.1-SNAPSHOT.

Solo tenga en count que ya no debe haber SNAPSHOT de determinada versión, si esa versión realmente se lanzó.

Comprender la forma en que maven interpreta SNAPSHOTS es aclarar cualquier duda que pueda tener.

Extracto de http://books.sonatype.com/mvnref-book/reference/pom-relationships-sect-pom-syntax.html

Por ejemplo, si su proyecto tiene una versión de "1.0-SNAPSHOT" y usted implementa los artefactos de este proyecto en un repository de Maven, Maven expandiría esta versión a "1.0-20080207-230803-1" si tuviera que desplegar un lanzamiento a las 11 : 8 PM el 7 de febrero de 2008 UTC

Primero, permítanme sugerirles que se adhieran a las convenciones de maven y cambien su versión a 0.1 como maven archetype:generate proponer.

Así que SNAPSHOT ayuda a otros a mantenerse actualizados fácilmente con su proyecto activo. En cada compilation, sus proyectos verificarán las nuevas versiones de las dependencies de SNAPSHOTS (basadas en esa pseudo-datetime-versión que tienen en su directory .m2 ).

Cuando terminas de trabajar en 0.1-SNAPSHOT , despliegas 0.1 y comienzas 0.2-SNAPSHOT o 1.0-SNAPSHOT

    Intereting Posts