zoukankan      html  css  js  c++  java
  • 【Git】 自动化Maven项目构建脚本(二)

    这次脚本增加了构建选择,可以按需构建了。

    #!/bin/bash
    #-----------------------------------------------
    # FileName: auto-build.sh
    # Reversion: 1.2
    # Date: 2017/07/27
    # Author: zhengwenqiang
    # Email: zhengwenqiang@bonc.com.cn
    # Description: build project eg "security portal cas " from nexus repository with maven build tool.
    # Notes: Please ensure that your current account have register public key into "code.bonc.com.cn" and save it in ~/.ssh/rsa.pub
    # Changes: support input directions for those three project to determinate building which project.
    # Copyright: 2017(c) zhengwenqiang
    # License: GPL
    #-----------------------------------------------
    propath=/home/hotspot/.autoBuild/project
    
    war_box=/home/hotspot/.autoBuild/project/war_box
    
    if [ -d $war_box ] ; then
        find $war_box -name '*.war' -type f -exec rm {} ;
    else
        mkdir -p $war_box
    fi
    
    #cas_branch=multi_tenant_removed
    
    #portal_branch=new_portal
    
    #platform_branch=dev-1.0.6
    
    if [ -f "$1" ] ; then
        sed -i 's/
    //g' $1
        source $1
    else
        echo "Configuration File Not Found!"
        exit 0
    fi
    
    read -n 1 -p "Do you want to build security ?(Y|y|N|n):" isBuildSecurity
    case $isBuildSecurity in
            Y|y)
            cd $propath
            [ -d platform ] || git clone ssh://git@code.bonc.com.cn:10022/base_framework/platform.git
            cd platform
            currentBranch=`git branch | grep ^* | sed -r "s/*s//g"`
            if [ "$platform_branch" != "$currentBranch" ] ; then
                    localBranchPlatform=`git branch | grep "^s*$platform_branch$" | sed -r 's/s*//g'`
                    if [ -n $localBranchPlatform ] ; then
                            echo $localBranchPlatform"非空"
                            git checkout $platform_branch
                    else
                            git checkout -b $platform_branch remotes/origin/$platform_branch
                    fi
            else
                    echo "Branch of platform is applicable now!"
            fi
            git pull
            cd security-base
            mvn clean install
            cd ../security
            mvn clean package -Pdeploy
            mv target/security.war $war_box
                ;;
           *)
                ;;
    esac
    
    
    read -n 1 -p "Do you want to build portal ?(Y|y|N|n):" isBuildPortal
    case $isBuildPortal in
            Y|y)
            cd $propath
            [ -d portal ] || git clone ssh://git@code.bonc.com.cn:10022/base_framework/portal.git
            cd portal
            currentBranch=`git branch | grep ^* | sed -r "s/*s//g"`
            if [ "$portal_branch" != "$currentBranch" ] ; then
                localBranchPortal=`git branch | grep "^s*$portal_branch$" | sed -r 's/s*//g'`
                 if [ -n $localBranchPortal ] ; then
                            echo $localBranchPortal"非空"
                            git checkout $portal_branch
                    else
                            git checkout -b $portal_branch remotes/origin/$portal_branch
                    fi
            else
                echo "Branch of portal is applicable now!"
            fi
        
            git pull
            mvn clean package -Pdeploy
            mv target/portal.war $war_box
            ;;
        *)
            ;;
    esac
    
    
    read -n 1 -p "Do you want to build cas ?(Y|y|N|n):" isBuildCas
    case $isBuildCas in
            Y|y)
        cd $propath
        [ -d cas ] || git clone ssh://git@code.bonc.com.cn:10022/base_framework/cas.git
        cd cas
        currentBranch=`git branch | grep ^* | sed -r "s/*s//g"`
        if [ "$cas_branch" != "$currentBranch" ] ; then
            localBranchCas=`git branch | grep "^s*$cas_branch$" | sed -r 's/s*//g'`
            if [ -n $localBranchCas ] ; then
                echo $localBranchCas"非空"
                git checkout $cas_branch
            else
                git checkout -b $cas_branch remotes/origin/$cas_branch
            fi
        else
            echo "Branch of cas is applicable now!"
    
        fi
        git pull
        mvn clean package -Pdeploy
        mv target/cas.war $war_box
            ;;
        *)
            ;;
    esac
  • 相关阅读:
    网络时钟同步SOCKET代码
    NTP时间同步之同步时钟要领
    3分钟 Markdown 快速入门(超详细)(Day_33)
    如何在idea中将项目生成API文档(超详细)(Day_32)
    多条件分页 (Day_31)
    常见判断错误 (Day_30)
    HTML 标签隐藏占用空间与不占用空间(Day_29)
    EasyUI_使用datagrid分页 (Day_28)
    (xxx) is not defined at HTMLInputElement.onblur(Day_27)
    EasyUI系列—点击按钮加载tabs_day26
  • 原文地址:https://www.cnblogs.com/zhengwenqiang/p/7249642.html
Copyright © 2011-2022 走看看