Shell中根据svn是否有待更新的版本去决定是执行maven打包

Posted chaos-x

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Shell中根据svn是否有待更新的版本去决定是执行maven打包相关的知识,希望对你有一定的参考价值。

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列的内容

 
 

以上是关于Shell中根据svn是否有待更新的版本去决定是执行maven打包的主要内容,如果未能解决你的问题,请参考以下文章

MAC EI Capitan上更新系统自带SVN版本号(关闭SIP方能sudo rm)

关于shell脚本函数数组字符串截取svn更新发布实例

SVN更新公共头文件版本

今天遇到奇怪的事:SVN本地代码的标记突然没了,Clean up也报错

源码SVN1.9.5 Shell脚本一健安装

SVN学习笔记三——钩子的应用