Lanzamiento de Maven: prepare-with-pom quita release-pom y luego intenta agregarlo?

Nuestro file pom actual usa la palabra key RELEASE para muchas de nuestras dependencies, y debemos mantener un artefacto pom que contenga la versión real a la que corresponde el lanzamiento. Prepare-with-pom hace esto, y si ejecuto maven con -DryryRun, obtengo un release-pom.xml que se ve exactamente correcto.

Sin embargo, para el negocio real, necesito eliminar la ejecución en seco y agregar el command de ejecución. En este punto, maven hace algo raro. Falla cada vez con el siguiente post:

The git-add command failed. Command output: fatal: pathspec 'release-pom.xml' did not match any files 

Una mirada rápida a través de los commands ejecutados más recientes muestra:

 [INFO] Executing: /bin/sh -c cd /Users/mikeburke/experience-manager/exm-v2 && git rm release-pom.xml [INFO] Working directory: /Users/mikeburke/experience-manager/exm-v2 [INFO] Checking in modified POMs... [INFO] Executing: /bin/sh -c cd /Users/mikeburke/experience-manager/exm-v2 && git add -- pom.xml release-pom.xml 

Por supuesto, release-pom.xml no está allí, simplemente lo eliminaste.

Entonces, ¿por qué sucede esto y, lo que es más importante, cómo lo soluciono? He buscado en todos los foros y más allá, y lo más cercano que he encontrado a mi problema es este , que recomienda el uso de varias versiones conflictivas de maven y sus dependencies, todas las cuales he intentado. ¿Alguien ha ejecutado esto con éxito, y puede ayudarme por favor?

Este error se registra aquí: https://issues.apache.org/jira/browse/SCM-706

El parche se fusionó después de que org.apache.maven.scm: maven-scm-provider-gitexe: 1.9.4 se cortó, por lo que tendrá que instalar una instantánea desde el origen o esperar hasta que se libere 1.9.5.

Después de un gran esfuerzo tratando de encontrar una solución viable, esto es lo que hice:

  1. Versión de mvn: prepare-with-pom -DdryRun = true Esto crea un file release-pom.xml con todas las dependencies planas, y con todas las tags <version>RELEASE</version> reemplazadas con las versiones reales.

  2. Abrimos nuestro pom.xml y reemplazamos la sección de dependencies con la de release-pom.xml, y lo registramos en el control de fuente.

  3. Actualizamos manualmente el file pom cada vez que se actualiza alguno de nuestros files internos, y volvemos a ejecutar el process anterior cada vez que cambian las dependencies externas.

Estaba trabajando en un script bash que Bamboo podría ejecutar que

  1. hacer una carrera en seco
  2. cambie el nombre de pom.xml a pom.dev y release-pom.xml a pom.xml
  3. ejecutar y labelr la versión de lanzamiento
  4. elimine pom.xml y cambie el nombre de pom.dev a pom.xml
  5. actualice el número de versión de la instantánea y verifique las cosas en

Debido al hecho de que nunca pude get el time correcto de desarrollo / testing en nuestro server de Bamboo y el hecho de que obtuve resultados diferentes ejecutando mi script localmente en comparación con el server, terminamos yendo con la solución más simple y manual.