La combinación perfecta de Maven, Gitflow y Bamboo

Recientemente pasamos de SVN a Git, y tratamos de implementar un process de desarrollo de gitflow. Pero tenemos problemas para usarlo como debería. Idealmente, nos gustaría tener el flujo que Nvie describió en su blog .

Mientras implementamos esto, encontramos varios problemas.

  • El model nos dice que la revisión HEAD en la twig 'master' es siempre la versión en producción. Pero al utilizar el complemento Maven-Release-plugin, actualizará la versión a SNAPSHOT, tachando esta característica.

  • ¿Cómo trabajamos con las twigs de publicación? Podríamos usar el plugin jgitflow , pero cuando comencemos la versión, transformará la versión a una versión 'liberada', algo así como 2.3.2. Pero, ¿qué pasa si hay problemas en esa twig de publicación? No podemos solucionarlos, a less que actualicemos esa versión a SNAPSHOT, solucionemos el problema y hagamos otra PUBLICACIÓN.

  • Luego usamos Bamboo, y tenemos 3 entornos, TST, STG y PRD. En la versión TST, implementamos las comstackciones desde la twig 'desarrollo' y hacemos lanzamientos (que no deben confundirse con las versiones maven) en cada compilation. Pero para STG y PRD, creamos una nueva versión de la twig principal en desplegarlos en STG, y si funciona correctamente, PRD.

Realmente me gustaría saber cómo manejar el control de versiones de un proyecto maven y cómo liberarlos (el lanzamiento de Maven) con Gitflow. Porque ahora podemos hacer un lanzamiento / deployment con un solo clic a STG y PRD desde dentro de Bamboo, pero también desde Jira.

¿Deberíamos usar jgitflow , y si es así, cómo deberíamos usarlo? ¿Cómo deberíamos hacer versiones? Cosas como esas.

He estado buscando esto en Internet durante unos días, pero parece que no puedo averiguar qué ha estado haciendo la gente con este tipo de configuration. Todo lo que puedo encontrar es "usar Gitflow", "crear lanzamientos de maven con jgitflow", pero no puedo ver la combinación entre todos ellos.

Espero que alguien me explique cómo esto puede funcionar (porque sé que todos tienen sus propias implementaciones y se apartarán un poco de los demás) o señalar lo que estoy haciendo mal.

Aprecio cada respuesta, incluso si solo me señala la dirección correcta, pero no me da la solución.