利用shell自动化打包java工程

Java代码    收藏代码
  1. #!/bin/bash  
  2.   
  3. #wuzhong@taobao.com  
  4. #打包工程用  
  5.   
  6. usage()  
  7. {  
  8.     echo 'build.sh -s(svn up) -x(antx.properties) -m(mvn clean package) -a(do all) kjava/wtm ]'  
  9.     exit 1  
  10. }  
  11.   
  12. #usage  
  13.   
  14. NEED_MVN=1  
  15. while getopts "sxma:" options;do  
  16.     case $options in  
  17.         s) echo "svn up"  
  18.            HAS_OPT=1  
  19.            NEED_SVN=1;;  
  20.         x) echo "copy antx properties"  
  21.            HAS_OPT=1  
  22.            NEED_ANTX=1;;  
  23.         m) echo "mvn clean package"  
  24.            HAS_OPT=1  
  25.            NEED_MVN=1;;  
  26.         a) echo "do all: svn up , antx properties , mvn clean package"  
  27.            HAS_OPT=1  
  28.            NEED_MVN=1  
  29.            NEED_SVN=1  
  30.            NEED_ANTX=1;;          
  31.         *) usage;;  
  32.     esac  
  33. done  
  34.   
  35. #APP_NAME=wtm  
  36. APP_PATH=/home/wuzhong/workspace/  
  37. #获取最后一个参数  
  38. RELATIVE_PATH=${!#}  
  39. APP_NAME=$(basename $RELATIVE_PATH)  
  40.   
  41. #对参数做判断  
  42. #if [ $HA ]  
  43.   
  44. APP_PATH=${APP_PATH}${RELATIVE_PATH}  
  45.   
  46. echo "app path is : $APP_PATH ; app name is $APP_NAME "  
  47.   
  48. [ $NEED_ANTX ] && if [ -f /home/wuzhong/work/${APP_NAME}_antx.properties ]  
  49.     then  
  50.     echo "copy antx properties from " /home/wuzhong/work/${APP_NAME}_antx.properties  
  51.         cp /home/wuzhong/work/${APP_NAME}_antx.properties /home/wuzhong/antx.properties  
  52.     else  
  53.         echo "===============antx.properties is not exist=============="  
  54.         exit 0  
  55.     fi  
  56.   
  57. if [ ! -d $APP_PATH ]  
  58. then   
  59.     echo "==============project doesnot exit==========" ;   
  60.     exit 0  
  61. fi  
  62.   
  63. if [ $NEED_SVN ]   
  64. then  
  65.     cd $APP_PATH  
  66.     svn up  
  67. fi  
  68.   
  69. if [ $NEED_MVN ]  
  70. then  
  71.     cd $APP_PATH  
  72.     mvn clean package   
  73. fi  

你可能感兴趣的:(shell)