我们维护了一个叫做api-parent的项目,作用类似于spring-boot-parent,用于存放并控制各个jar包的版本.原先每次版本升级都是开发同学手动去维护,因为版本多/人多等原因,这里经常冲突出问题,所以就想把升版本的操作写进jenkinsfile里面,让脚本去维护.

increment_version (){  
      declare -a part=( ${1//\./ } )  
      declare    new  
      declare -i carry=1  
  
      for (( CNTR=${#part[@]}-1; CNTR>=0; CNTR-=1 )); do  
          len=${#part[CNTR]}  
          new=$((part[CNTR]+carry))  
          [ ${#new} -gt $len ] && carry=1 || carry=0  
          [ $CNTR -gt 0 ] && part[CNTR]=${new: -len} || part[CNTR]=${new}  
      done  
      new="${part[*]}"  
      new_version=${new// /.}  
      echo "${new_version}"  
 }  
  
 increment_version $1