在linux下配置javaWeb项目.sh部署脚本
2016-01-04 16:24
633 查看
#!/bin/sh
#使用监视模式,如果不设置该命令。可能导致通过shell脚本启动以后,shell断开连接,启用的应用程序也会随之停止。
set -m
# 定义变量接收值, 如: ./test.sh gx test true true
provice="$1"
profile="$2"
if [ "${profile}" = "" ];then
profile="test"
fi
skip_core="$3"
skip_common="$4"
path=`pwd`
#`pwd`代表当前目录。注意是`符号,而不是'单引号
PROJECT_NAME='lottery'
SUB_PROJECT_NAME='lottery-service'
suffix=""
if [ "${provice}" != "gx" ];then
suffix="-${provice}"
fi
TC_PATH="/opt/tc-server/joywifi-server-${SUB_PROJECT_NAME}${suffix}"
#从svn上更新代码
update_code(){
if [ -e $PROJECT_NAME ];then
cd $PROJECT_NAME && svn update --username "xuebin.yang" --password "888888"
else
svn checkout "http://10.13.0.55:8080/svn/GL_SCLT/trunk/${PROJECT_NAME}" --username "xuebin.yang" --password "888888"
fi
}
#进行打包处理
package(){
cd ${path}/${PROJECT_NAME}
if [ "$skip_core" != "true" ];then
echo 'install lottery-core'
mvn clean install -f lottery-core/pom.xml -P ${provice} -Dmaven.test.skip=true
fi
if [ "$skip_common" != "true" ];then
echo 'install lottery-common'
mvn clean install -f lottery-common/pom.xml -P ${provice} -Dmaven.test.skip=true
fi
echo "package ${SUB_PROJECT_NAME}"
mvn clean package -P ${profile}-${provice} -Dmaven.test.skip=true -f ${SUB_PROJECT_NAME}/pom.xml
if [ $? -ne 0 ];then
echo '打包不成功,请检查svn代码'
exit 0
fi
}
#mvn命令部署项目
deploy(){
${TC_PATH}/bin/tcruntime-ctl.sh stop
rm -rf ${TC_PATH}/webapps/ROOT/
rm -rf ${TC_PATH}/webapps/ROOT.war.BAK
mv ${TC_PATH}/webapps/ROOT.war ${TC_PATH}/webapps/ROOT.war.BAK
cp ${path}/${PROJECT_NAME}/${SUB_PROJECT_NAME}/target/ROOT-${profile}.war ${TC_PATH}/webapps/ROOT.war
${TC_PATH}/bin/tcruntime-ctl.sh start &
tail -f ${TC_PATH}/logs/catalina.out
}
if [ $path != '/home/sh-command/deploy' ];then
echo '请到/home/sh-command/deploy目录下运行'
exit 0
fi
if [ $# -lt 1 ];then
echo "请输入省份"
exit 0
fi
update_code
package
read -p '是否部署?Y/N' is_deploy
echo "是否部署:$is_deploy"
if [ $is_deploy = "y" ] || [ $is_deploy = "yes" ];then
deploy
elif [ $is_deploy = "n" ] || [ $is_deploy = "no" ];then
echo -e "\033[31m 取消部署 \033[0m"
else
while [ $is_deploy != "y" ] || [ $is_deploy != "yes" ] || [ $is_deploy != "n" ] || [ $is_deploy != "no" ];do
read -p '是否部署?Y/N' is_deploy
echo "是否部署:$is_deploy"
if [ $is_deploy = "y" ] || [ $is_deploy = "yes" ];then
deploy
break
elif [ $is_deploy = "n" ] || [ $is_deploy = "no" ];then
echo -e "\033[31m 取消部署 \033[0m"
break
fi
done
fi
#使用监视模式,如果不设置该命令。可能导致通过shell脚本启动以后,shell断开连接,启用的应用程序也会随之停止。
set -m
# 定义变量接收值, 如: ./test.sh gx test true true
provice="$1"
profile="$2"
if [ "${profile}" = "" ];then
profile="test"
fi
skip_core="$3"
skip_common="$4"
path=`pwd`
#`pwd`代表当前目录。注意是`符号,而不是'单引号
PROJECT_NAME='lottery'
SUB_PROJECT_NAME='lottery-service'
suffix=""
if [ "${provice}" != "gx" ];then
suffix="-${provice}"
fi
TC_PATH="/opt/tc-server/joywifi-server-${SUB_PROJECT_NAME}${suffix}"
#从svn上更新代码
update_code(){
if [ -e $PROJECT_NAME ];then
cd $PROJECT_NAME && svn update --username "xuebin.yang" --password "888888"
else
svn checkout "http://10.13.0.55:8080/svn/GL_SCLT/trunk/${PROJECT_NAME}" --username "xuebin.yang" --password "888888"
fi
}
#进行打包处理
package(){
cd ${path}/${PROJECT_NAME}
if [ "$skip_core" != "true" ];then
echo 'install lottery-core'
mvn clean install -f lottery-core/pom.xml -P ${provice} -Dmaven.test.skip=true
fi
if [ "$skip_common" != "true" ];then
echo 'install lottery-common'
mvn clean install -f lottery-common/pom.xml -P ${provice} -Dmaven.test.skip=true
fi
echo "package ${SUB_PROJECT_NAME}"
mvn clean package -P ${profile}-${provice} -Dmaven.test.skip=true -f ${SUB_PROJECT_NAME}/pom.xml
if [ $? -ne 0 ];then
echo '打包不成功,请检查svn代码'
exit 0
fi
}
#mvn命令部署项目
deploy(){
${TC_PATH}/bin/tcruntime-ctl.sh stop
rm -rf ${TC_PATH}/webapps/ROOT/
rm -rf ${TC_PATH}/webapps/ROOT.war.BAK
mv ${TC_PATH}/webapps/ROOT.war ${TC_PATH}/webapps/ROOT.war.BAK
cp ${path}/${PROJECT_NAME}/${SUB_PROJECT_NAME}/target/ROOT-${profile}.war ${TC_PATH}/webapps/ROOT.war
${TC_PATH}/bin/tcruntime-ctl.sh start &
tail -f ${TC_PATH}/logs/catalina.out
}
if [ $path != '/home/sh-command/deploy' ];then
echo '请到/home/sh-command/deploy目录下运行'
exit 0
fi
if [ $# -lt 1 ];then
echo "请输入省份"
exit 0
fi
update_code
package
read -p '是否部署?Y/N' is_deploy
echo "是否部署:$is_deploy"
if [ $is_deploy = "y" ] || [ $is_deploy = "yes" ];then
deploy
elif [ $is_deploy = "n" ] || [ $is_deploy = "no" ];then
echo -e "\033[31m 取消部署 \033[0m"
else
while [ $is_deploy != "y" ] || [ $is_deploy != "yes" ] || [ $is_deploy != "n" ] || [ $is_deploy != "no" ];do
read -p '是否部署?Y/N' is_deploy
echo "是否部署:$is_deploy"
if [ $is_deploy = "y" ] || [ $is_deploy = "yes" ];then
deploy
break
elif [ $is_deploy = "n" ] || [ $is_deploy = "no" ];then
echo -e "\033[31m 取消部署 \033[0m"
break
fi
done
fi
相关文章推荐
- Linux用户空间与内核空间
- Linux 系统应用编程——文件I/O
- Linux/Unix下ODBC的安装
- linux(centos) 保存退出vi编辑
- 配置linux服务器的防火墙,以CENTOS 为例(转载)
- linux常用命令-date-clock-hwclock-type-whatis--help-man-info-cal
- Linux平台部署varnish 高性能缓存服务器(1)
- Linux使用ODBC方式还是DBI方式安装R语言扩展包好
- linux启动_grub
- 每天一个Linux之chown命令
- Centos系统下Lamp环境的快速搭建(超详细)
- Linux内核驱动 GPIO子系统 GPIO的使用
- linux mysql大小写敏感问题
- linux下iptables命令
- LINUX 部署 WEB.PY 验证码服务的 配置说明书
- PHP 7.0 For Linux的安装使用与性能监测
- linux 批量删除目录下的文件夹,包含子文件
- windows 向linux服务器上传文件命令
- How to Record your Voice from the Microphone on Ubuntu/Linux Mint
- linux中vi/vim显示行号设置