文档章节

shell编译部署java项目自动化脚本

半张一块
 半张一块
发布于 2017/07/25 20:07
字数 661
阅读 41
收藏 0
green='\e[0;32m' # 绿色  
NC='\e[0m' # 没有颜色
#TUES_WEBSERVER_PID=$(ps x|grep /home/admin/tues-webserver/tues-webserver/target/tues-webserver-0.0.1-SNAPSHOT.jar |awk '{print $1}')
TUES_WEBSERVER_PID=$(cat /home/admin/sh/tues-webserver.pid)
if [ -n "$TUES_WEBSERVER_PID" ]
then
        echo 'kill '$TUES_WEBSERVER_PID
        kill $TUES_WEBSERVER_PID
fi
echo 'start update tues-weberser project'
cd /home/admin/tues-webserver
git pull origin master
echo 'start build tues-webserver project'
cd /home/admin/tues-webserver/tues-webserver
mvn install
cd /home/admin/tues-webserver/tues-webserver/target
echo 'start deploy tues-webserver project'
nohup java -Xdebug -Xrunjdwp:server=y,transport=dt_socket,address=8002,suspend=n -jar /home/admin/tues-webserver/tues-webserver/target/tues-webserver-0.0.1-SNAPSHOT.jar --spring.profiles.active=online > /home/admin/logs/start.log 2>&1 &
echo $! > /home/admin/sh/tues-webserver.pid

START_TIME=`date +%s`
while [[ -z `netstat -ln|grep 9002` ]]
do
        TIME_TOTAL=$[`date +%s`-START_TIME]
        printf "\r" $b $i
        echo -n "[tues-webserver] the server is starting :$TIME_TOTAL S  "
        sleep 1
done
echo -e "\n${green}[tues-webserver] the tuew-webserver start finihed${NC}"



SVN版本
GREEN='\e[0;32m' # 绿色
NC='\e[0m' # 没有颜色

echo "${GREEN}start update cos project${NC}"
cd /usr/local/java/workspace/ycl-platform
svn update
echo -e "${GREEN}start build cos project${NC}"
cd /usr/local/java/workspace/ycl-platform
mvn package -Dmaven.test.skip=true
echo -e "${GREEN}stop cos project${NC}"
PID=$(cat /usr/local/java/sh/cos.pid)
echo "kill PID=$PID"
kill -9 $PID
cd /usr/local/java/workspace/ycl-platform/ycl-web/ycl-cos/target
echo -e "${GREEN} copy cos project ${NC}"
cp -rf ycl-cos /usr/local/java/tomcat/cos/webapps
cd /usr/local/java/tomcat/cos/bin
sh catalina.sh start
START_TIME=`date +%s`
while [[ -z `curl –connect-timeout 1 -m 1 http://localhost:8115/ -s` ]]
do
        TIME_TOTAL=$[`date +%s`-START_TIME]
        printf "\r" $b $i
        echo -en "${GREEN}[cos] the server is starting :$TIME_TOTAL S  ${NC}"

done
echo $(ps -ef|grep cos|awk '{print $2}') > /usr/local/java/sh/cos.pid
PID_STR=$(cat /usr/local/java/sh/cos.pid)
PID=$(echo ${PID_STR%% *})
echo $PID > /usr/local/java/sh/cos.pid
echo -e "\n${GREEN}[cos] the server start finihed${NC}"


#########################2017.10.30
#!/bin/sh
GREEN='\e[0;32m' # 绿色
NC='\e[0m' # 没有颜色

PROJECT_NAME='COS' #项目名称
PROJECT_PID_ROUTE='/usr/local/java/sh/cos.pid' #项目PID文件路径
PROJECT_WORKSPACE='/usr/local/java/workspace/ycl-platform' #项目工程路径
PROJECT_BULID_WORKSPACE='/usr/local/java/workspace/ycl-platform/ycl-web/ycl-cos/target' #项目编译后的文件夹路径
PROJECT_BULID_FOLDER_NAME='ycl-cos' #项目编译后的文件夹名称
PROJECT_START_WORKSPACE='/usr/local/java/tomcat/cos/webapps' #项目运行的文件夹路径
PROJECT_TOMCAT_BIN_FOLDER='/usr/local/java/tomcat/cos/bin' #项目启动的tomcat/bin目录
PROJECT_CONNECT_URL='http://localhost:8115/' #项目本地访问路径-用于检测项目是否启动成功


echo "${GREEN}[ $PROJECT_NAME ] project start update${NC}"
cd $PROJECT_WORKSPACE
svn update
echo -e "${GREEN}[ $PROJECT_NAME ] project start build${NC}"
mvn package -Dmaven.test.skip=true
rc=$?
if [[ $rc -ne 0 ]] ; then
echo -en  "${GREEN}[ $PROJECT_NAME ]
#######################################################
#                      打包失败                        #       
####################################################### ${NC}
"
cd -
exit $rc
fi

echo -e "${GREEN}[ $PROJECT_NAME ] project stop${NC}"
echo $(ps -ef|grep cos|awk '{print $2}') > $PROJECT_PID_ROUTE
PID_NULL_NUMBER=$(grep -o ' ' $PROJECT_PID_ROUTE |wc -l)
if [ "$PID_NULL_NUMBER" -ge '1' ];then
PID_STR=$(cat $PROJECT_PID_ROUTE)
PID=$(echo ${PID_STR%% *})
echo $PID > $PROJECT_PID_ROUTE
echo "kill PID=$PID"
PID=$(cat $PROJECT_PID_ROUTE)
kill -9 $PID
fi

echo -e "${GREEN}[ $PROJECT_NAME ] project clean${NC}"
cd $PROJECT_START_WORKSPACE
rm -rf $PROJECT_BULID_FOLDER_NAME
cd $PROJECT_BULID_WORKSPACE
echo -e "${GREEN}[ $PROJECT_NAME ] project copy${NC}"
cp -rf $PROJECT_BULID_FOLDER_NAME $PROJECT_START_WORKSPACE
cd $PROJECT_TOMCAT_BIN_FOLDER
sh catalina.sh start
START_TIME=`date +%s`
while [[ -z `curl –connect-timeout 1 -m 1 $PROJECT_CONNECT_URL -s` ]]
do
	TIME_TOTAL=$[`date +%s`-START_TIME]
	printf "\r" $b $i
	echo -en  "${GREEN}
###########################################################################################
#																						  #
#																						  #
#       [ $PROJECT_NAME ] project the server is starting :$TIME_TOTAL S                   #
#																						  #
#																						  #
########################################################################################### ${NC}
"
done
echo -e "\n${GREEN}[ $PROJECT_NAME ] project the server start finihed${NC}"


 

© 著作权归作者所有

共有 人打赏支持
半张一块
粉丝 25
博文 56
码字总数 39532
作品 2
宁波
架构师
私信 提问
通过Shell脚本用JDBC连数据库脱离项目框架执行Java业务流程

一.概述 如果项目中需要使用到定时任务来完成某些业务,一般有两种做法:定时任务依赖于项目;定时任务用批处理(windows执行)或者shell脚本(Linux)启动,不依赖于项目。 个人觉得,定时任...

谢思华
2015/08/10
0
0
Java 项目自动化部署

Java 自动化部署 功能实现对Java项目自动化部署,减少人为操作以及认为造成的事故。 获取代码 分支管理(切换开发,测试,生产环境) 分支合并 (开发->测试->生产分支合并) 编译 处理配置文...

netkiller-
2016/03/01
4
0
Jenkins 教程(一)实现自动化打包及邮件通知

个人不喜欢装腔作势一堆专业术语放上去,让大多数人看不懂来提升逼格(所谓的专家),所以我简单的介绍jenkins是干啥的。本文使用jenkins,就是让它把git仓库里的东西取出来,然后在jenkins容器...

FantJ
05/26
0
0
gradle/Groovy语法

Groovy官网的介绍(http://www.groovy-lang.org/download.html#gvm) Gradle API 文档: https://docs.gradle.org/current/dsl/org.gradle.api.invocation.Gradle.html 深入理解Android(一)......

shareus
04/27
0
0
关于 Java Scripting API 您不知道的 5 件事

现在,许多 Java 开发人员都喜欢在 Java 平台中使用脚本语言,但是使用编译到 Java 字节码中的动态语言有时是不可行的。在某些情况中,直接编写一个 Java 应用程序的脚本 部分 或者在一个脚本...

红薯
2010/09/12
494
2

没有更多内容

加载失败,请刷新页面

加载更多

oh-my-zsh 自定义

GitHub 地址 基于 oh-my-zsh 的自定义配置,增加了一些个人常用插件与皮肤。 采用的是 git submodule 来维护,包括 oh-my-zsh,之所以这么搞,主要是手头有多台 linux 需要维护, 每台机器、...

郁也风
今天
4
0
Docker安装踩坑:E_FAIL 0x80004005的解决

参考 菜鸟教程--Windows Docker 安装 http://www.runoob.com/docker/windows-docker-install.html 官方文档-Install Docker Toolbox on Windows https://docs.docker.com/toolbox/toolbox_in......

karma123
今天
4
0
js垃圾回收机制和引起内存泄漏的操作

JS的垃圾回收机制了解吗? Js具有自动垃圾回收机制。垃圾收集器会按照固定的时间间隔周期性的执行。 JS中最常见的垃圾回收方式是标记清除。 工作原理:是当变量进入环境时,将这个变量标记为“...

Jack088
昨天
17
0
大数据教程(10.1)倒排索引建立

前面博主介绍了sql中join功能的大数据实现,本节将继续为小伙伴们分享倒排索引的建立。 一、需求 在很多项目中,我们需要对我们的文档建立索引(如:论坛帖子);我们需要记录某个词在各个文...

em_aaron
昨天
27
0
"errcode": 41001, "errmsg": "access_token missing hint: [w.ILza05728877!]"

Postman获取微信小程序码的时候报错, errcode: 41001, errmsg: access_token missing hint 查看小程序开发api指南,原来access_token是直接当作parameter的(写在url之后),scene参数一定要...

两广总督bogang
昨天
31
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部