나는 가지고있다pom.xml줄을 포함
<version>x.y.z-tag</version>
어디꼬리표스냅샷, 알파, 베타 또는 릴리스가 될 수 있습니다.
그리고xyz1.0.0 또는 1.2.1 ...과 같은 숫자 버전입니다.
주어진 매개변수로 해당 라인을 변경하고 싶습니다. 예를 들어:
기존 버전:<version>1.0.0-snapshot</version>
주어진 매개변수:1.0.1-alpha
산출:<version>1.0.1-alpha</version>
./script.sh newVersion pom.xml
추신: pom.xml에는 ...으로 시작하는 행이 많이 포함되어 있으므로 변경 사항을 패턴으로 <version>
적용해야 합니다 .<version>
x.y.z-tag
답변1
#!/bin/sh
tag=$(grep '<version>' $2 | sed 's/<version>[^-]*-\(.*\)<\/version>/\1/')
sed -i "s/<version>.*<\/version>/<version>$1-${tag}<\/version>/" $2
이것을 로 저장하고 script.sh
실행 가능하게 만들고( chmod +x script.sh
) 다음을 사용하여 실행하십시오.
./script.sh <new_version> pom.xml