Shell中根据svn是否有待更新的版本去决定是执行maven打包
程序员文章站
2022-03-31 17:09:28
1- svn 更新判断代码 本着学习的目的,这里使用了两种获取version的方法。 2- 解释 sort svn info -R 递归查出所有文件的info信息 sort -k 2 是以第二列排序 sort -t : 是指定以“:”为列分隔符 sort -nr: n是指以数字排序,默认是以字符排序 ......
1- svn 更新判断代码
本着学习的目的,这里使用了两种获取version的方法。
localversion=$(svn info -r | grep "revision\:" | sort -k 2 -nr | head -n 1 | awk -f ' ' 'nr==1 {print $2}') serverurl=$(svn info |grep "^url:" | awk '{print $2}') serverversion=$(svn info ${serverurl} |grep "last changed rev:" |awk '{print $4}') if test ${serverversion} -gt ${localversion} then svn update mvn clean package -dskiptests cd ${modulename}/target/ cp -f ${jarname} ${apphome}/jar/ fi
2- 解释
- sort
svn info -r 递归查出所有文件的info信息
sort -k 2 是以第二列排序
sort -t : 是指定以“:”为列分隔符
sort -nr: n是指以数字排序,默认是以字符排序的,那样的话,10会在2的前面,因为1大于2,-r (reverse)是以倒序排序。
- awk
-f 指定分隔符
nr==1 指定行号为1
print $2 打印nr行2列的内容