关键字
shell_upgrade_version_in_pom 自动升级maven工程中的项目版本 upgrade-valuetodays-version
关联文集
脚本如下:
#!/bin/bash
# 本功能可由mvn versions:set -DnextSnapshot 来实现
###
# 从pom.xml中获取版本号,将最后一个数字加1,并生成新的版本号
###
###
# 1. use xml-coreutils
# download xml-coreutils from https://sourceforge.net/projects/xml-coreutils/postdownload
# and install it following README
###
# 2. use xmllint
# sudo yum install -y libxml2
# xmllint --xpath "/*[name()='project']/*[name()='version']/text()" pom.xml
#
###
if [ ! -x "$(command -v xmllint)" ]; then
echo Error: xmllint is not installed. use \'sudo yum install -y libxml2\'
exit 1
fi
current_dir=$(cd `dirname $0`; pwd)
echo current_dir is ${current_dir}
# use xml-coreutils
# old_version=$(xml-printf '%s' pom.xml :/project/version)
# use xmllint
old_version=$(xmllint --xpath "/*[name()='project']/*[name()='version']/text()" pom.xml)
#old_version=1.9-SNAPSHOT
echo old version is ${old_version}
is_snapshot=0
if [[ "${old_version}" =~ -SNAPSHOT$ ]]; then
is_snapshot=1
fi
echo is a snapshot version? ${is_snapshot}
snapshot_str=-SNAPSHOT
old_version_without_snapshot=${old_version}
if [[ ${is_snapshot} == 1 ]]; then
old_version_length=${#old_version}
#echo length of [${old_version}] is ${old_version_length}
end_index=`expr ${old_version_length} - ${#snapshot_str}`
#echo end index ${end_index}
old_version_without_snapshot=$(expr substr ${old_version} 1 ${end_index})
fi
echo old_version_without_snapshot is ${old_version_without_snapshot}
digital_version_array=(`echo ${old_version_without_snapshot} | tr '.' ' '`)
#digital_version_array=('1' '9')
#echo old array: [${digital_version_array[@]}]
digital_version_array_length=${#digital_version_array[@]}
#echo digital_version_array_length: ${digital_version_array_length}
last_digital=${digital_version_array[${digital_version_array_length}-1]}
#echo last digital: [${last_digital}]
last_digital=`expr ${last_digital} + 1`
#echo new last digital: [${last_digital}]
digital_version_array[digital_version_array_length-1]=${last_digital}
#echo new array: [${digital_version_array[@]}]
new_version=''
for i in ${digital_version_array[@]}; do
new_version=${new_version}.${i};
done
new_version=${new_version:1}
if [[ ${is_snapshot} == 1 ]]; then
new_version=${new_version}${snapshot_str}
fi
echo new version: [${new_version}]
mvn versions:set -DnewVersion=${new_version} && mvn versions:commit
作者:admin 创建时间:2023-07-12 17:42
最后编辑:admin 更新时间:2025-09-19 10:08
最后编辑:admin 更新时间:2025-09-19 10:08