Cómo cambiar una versión de pom.xml con un script de shell de Linux

Cómo cambiar una versión de pom.xml con un script de shell de Linux

tengo unpom.xmlcontener una línea

<version>x.y.z-tag</version>

dóndeetiquetapodría ser: instantánea, alfa, beta o versión.

yxyzes una versión numérica como: 1.0.0 o 1.2.1 ....

Quiero hacer un cambio en esa línea mediante un parámetro determinado. por ejemplo:

versión existente:<version>1.0.0-snapshot</version>

parámetro dado:1.0.1-alpha

producción:<version>1.0.1-alpha</version>

./script.sh newVersion pom.xml

PD: pom.xml contiene muchas líneas que comienzan con <version>... por lo que mis cambios deben aplicarse <version>con un patrón:x.y.z-tag

Respuesta1

#!/bin/sh            
tag=$(grep '<version>' $2 | sed 's/<version>[^-]*-\(.*\)<\/version>/\1/')
sed -i "s/<version>.*<\/version>/<version>$1-${tag}<\/version>/" $2

guárdelo como script.sh, hágalo ejecutable ( chmod +x script.sh) y ejecútelo con:

./script.sh <new_version> pom.xml

información relacionada