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

#!/bin/bash
#-----------------------------------------------
# FileName: auto-build.sh
# Reversion: 1.2
# Date: //
# 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: (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-

if [ -f "$1" ] ; then

    source $
else
    echo "Configuration File Not Found!"
    exit
fi

read -n  -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  -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  -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

【Git】 自动化Maven项目构建脚本(二)的更多相关文章

  1. 【Git】自动化Maven项目构建脚本(一)

    在公司服务器上搭了个自动化构建环境,一上午写了个构建脚本,现在贴出来给自己看 #!/bin/bash # .配置路径变量 propath=/home/hotspot/.autoBuild/projec ...

  2. (转)Maven学习总结(二)——Maven项目构建过程练习

    孤傲苍狼 只为成功找方法,不为失败找借口! Maven学习总结(二)——Maven项目构建过程练习 上一篇只是简单介绍了一下maven入门的一些相关知识,这一篇主要是体验一下Maven高度自动化构建项 ...

  3. Maven学习总结(2)——Maven项目构建过程练习

    Maven学习总结(二)--Maven项目构建过程练习 上一篇只是简单介绍了一下maven入门的一些相关知识,这一篇主要是体验一下Maven高度自动化构建项目的过程 一.创建Maven项目 1.1.建 ...

  4. 准备阶段-maven项目构建

    依据我现阶段对maven的了解,具使用POM管理项目和强大的repository资源管理库支持. 在项目建立初期,对网站的可拓展.高并发.易于管理做了评估.最终使用Maven 管理该项目 . 如下是m ...

  5. Maven学习总结(二)——Maven项目构建过程练习

    上一篇只是简单介绍了一下maven入门的一些相关知识,这一篇主要是体验一下Maven高度自动化构建项目的过程 一.创建Maven项目 1.1.建立Hello项目 1.首先建立Hello项目,同时建立M ...

  6. Maven学习总结(二)——Maven项目构建过程练习_转载

    上一篇只是简单介绍了一下maven入门的一些相关知识,这一篇主要是体验一下Maven高度自动化构建项目的过程 一.创建Maven项目 1.1.建立Hello项目 1.首先建立Hello项目,同时建立M ...

  7. 转】Maven学习总结(二)——Maven项目构建过程练习

    原博文出自于:http://www.cnblogs.com/xdp-gacl/p/4051690.html 感谢! 上一篇只是简单介绍了一下maven入门的一些相关知识,这一篇主要是体验一下Maven ...

  8. Maven学习(二)-- Maven项目构建过程练习

    摘自:http://www.cnblogs.com/xdp-gacl/p/4051690.html 一.创建Maven项目 1.1.建立Hello项目 1.首先建立Hello项目,同时建立Maven约 ...

  9. maven项目构建

    Maven是apache的一个开源项目.是一个用来把源代码构建成可发布的构件的工具. Maven的功能非常强大,可以认为是一个项目管理工具,不仅仅是一个构建工具. Maven本身的核心很小,但是可以在 ...

随机推荐

  1. 基于 WebRTC 技术的实时通信服务开发实践

    随着直播的发展,直播实时互动性变得日益重要.又拍云在 WebRTC 的基础上,凭借多年的开发经验,结合当下实际情况,开发 UPRTC 系统,解决了网络延时.并发量大.客户端解码能力差等问题. WebR ...

  2. hdu_1564: Play a game

    题目链接 看n的奇偶性,题解参见kuangbin的博客 http://www.cnblogs.com/kuangbin/archive/2013/07/22/3204654.html #include ...

  3. cocos2dx之WebView踩过的坑(android返回键处理问题)

    最近游戏接入了一个私服平台,由于没有sdk,所以支付相关的操作需要在网页端进行,也就是说点击充值需要在游戏内部弹出一个网页,并定位到平台充值的地址.查阅相关资料后决定使用cocos2dx自带的WebV ...

  4. kevin的黎明十分

    今天在搜索struts2的相关知识的时候,博客园让我提起了兴趣.其间看到了hongton同学的分享,感觉受益颇深!所以今天我加入了博客园,希望自己以后能在这个大家园中分享知识,收获人生!  即兴之下, ...

  5. HTML5 开发APP(头部和底部选项卡)

    我们开发app有一定固定的样式,比如头部和底部选项卡部分就是公共部分就比如我在做的app进来的主页面就像图片显示的那样 我们该怎么实现呢,实现我们应该建一个主页面index.html,然后建五个子页面 ...

  6. Linux安装搜狗输入法教程

    最近开始学习linux 在安装输入法中遇到的一些问题,最终成功安装,也得益于网络上的前辈写的文章,现在将全部安装步骤以及遇到的一些问题总结如下:   基本上分三步走 1,添加fcitx的键盘输入法系统 ...

  7. angularjs 选项卡tab切换(移动端用户订单状态)

    <!--头部导航tabs切换--> <div class="tabs-striped tabs-top tabs-background-positive tabs-colo ...

  8. [COGS 1752] 摩基亚Mokia

    照例先上题面 1752. [BOI2007]摩基亚Mokia 输入文件:mokia.in   输出文件:mokia.out 时间限制:1.5 s   内存限制:128 MB [题目描述] 摩尔瓦多的移 ...

  9. Flunetd 用于统一日志记录层的开源数据收集器

    传统的日志查看方式 使用fluentd之后 一.介绍 Fluentd是一个开源的数据收集器,可以统一对数据收集和消费,以便更好地使用和理解数据. 几大特色: 使用JSON统一记录 简单灵活可插拔架构 ...

  10. Android学习笔记-ScrollView(滚动条)

    本节引言: 本节带来的是Android基本UI控件中的第十个:ScrollView(滚动条),或者我们应该叫他 竖直滚动条,对应的另外一个水平方向上的滚动条:HorizontalScrollView, ...