文档章节

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

半张一块
 半张一块
发布于 2017/07/25 20:07
字数 661
阅读 30
收藏 0
点赞 0
评论 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}"


 

© 著作权归作者所有

共有 人打赏支持
半张一块
粉丝 24
博文 39
码字总数 35527
作品 2
宁波
架构师
Jenkins 教程(一)实现自动化打包及邮件通知

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

FantJ ⋅ 05/26 ⋅ 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

搭建私有代码管理平台(Gitlab)和自动化部署平台(Jenkins)

项目本地开发完成后,我们就需要将代码部署到线上服务器。在当下微服务、集群等的流行,单靠传统的部署显然是无法满足当下的需求;但是我们通过Gitlab和Jenkins这两个常用的开源项目,便可搭...

Mr_ET ⋅ 05/15 ⋅ 0

Tomcat与Jre绿色环境配置(生产环境)

Tomcat与Jre绿色环境配置(生产环境)博客分类: Apache Java jreapachetomcat Tomcat运行时需要jre的支持,一般有两种方式,一种是用jdk带的jre,另一种无需安装jdk只利用jre。这两种方式的...

thinkyoung ⋅ 2015/12/31 ⋅ 0

Jmeter之Bean shell使用

 上一篇简单介绍了下Jmeter中的Bean shell,本文是对上文的一个补充,主要总结下常用的几种场景和方法,相信这些基本可以涵盖大部分的需求。本节内容如下: 一、操作变量 二、操作属性 三、...

覃光林 ⋅ 05/10 ⋅ 0

自动化测试selenium在小公司的成功实践

前言 可能提到自动化测试selenium,大家都会想到用python语言来编写脚本。但我们选择了java语言,因为我相信大部分公司java程序员比python程序员多得多。而对于很多测试人员,并不能熟练使用...

邵磊 ⋅ 06/17 ⋅ 0

Linux下Tomcat的搭建以及开机自启动设置

首先进行下JDK的配置:   1.查看下系统信息,确认是32位还是64位:uname -a   2.下载相应位数的jdk压缩包,传到Linux系统,这里提供一个32位和64位的下载链接:https://pan.baidu.com/s...

武哥_话神 ⋅ 04/27 ⋅ 0

Xtend语言(1):独辟蹊径的JVM语言

我是2004年开始学习Java语言的,那时候的Java是1.4版本,说实在的,最新的Java10跟我一开始学习Java时候的语法变化并不大。我相信很多人都会跟我有相同的感受:Java写的越多就越觉得语法十分...

神思者l ⋅ 06/05 ⋅ 0

Java程序员必读书单,家族又添新成员

点击关注异步图书,置顶公众号 每天与你分享IT好书 技术干货 职场知识 参与文末话题讨论,每日赠送异步图书。 ——异步小编 有些革命出其不意地吸引了全世界的眼球。Twitter、Linux操作系统和...

异步社区 ⋅ 05/09 ⋅ 0

跟我一起学docker(十)--jenkins的使用

什么是Jenkins? jenkins是一个广泛用于持续构建的可视化web工具,持续构建说得更直白点,就是各种项目的"自动化"编译、打包、分发部署。jenkins可以很好的支持各种语言(比如:java, c#, php...

IT人故事会 ⋅ 05/03 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

收集自网络的wordpress 分页导航的代码教程(全网最全版)

wordpress 分页导航是用来切换文章的一个功能,添加了 wordpress 分页导航后,用户即可自由到达指定的页面数浏览分类文章,而这样的一个很简单功能却有很多朋友在用插件:WP-PageNavi,插件的...

Rhymo-Wu ⋅ 40分钟前 ⋅ 0

微服务 WildFly Swarm 入门

Hello World 就像前面章节中的其他框架一样,我们希望添加一些基本的 Hello-world 功能,然后在其上逐步添加更多的功能。让我们从在我们的项目中创建一个 HolaResources 开始。您可以使用您的...

woshixin ⋅ 47分钟前 ⋅ 0

Maven的安装和Eclipse的配置

1. 下载Maven 下载地址 2. 解压压缩包,放到自己习惯的硬盘中 此处我将其放到了 D:\Tools 目录下。 3. 配置环境变量 右键此电脑 -> 属性 -> 高级系统设置 -> 环境变量。 在系统变量中新建,变...

影狼 ⋅ 55分钟前 ⋅ 0

python pip使用国内镜像的方法

国内源 清华:https://pypi.tuna.tsinghua.edu.cn/simple 阿里云:http://mirrors.aliyun.com/pypi/simple/ 中国科技大学 https://pypi.mirrors.ustc.edu.cn/simple/ 华中理工大学:http://......

良言 ⋅ 55分钟前 ⋅ 0

对于url变化的spa应该如何使用微信jssdk

使用vue单页面碰上微信jssdk config验证失败的坑。第一次成功 之后切换页面全部失败,找到了解决方法,第一次验证成功后保存验证信息 切换页面时验证信息直接拿来用,加一个wx.error() 失败时...

孙冠峰 ⋅ 今天 ⋅ 0

Spring Cloud Gateway 一般集成

SCF发布,带来很多新东西,不过少了点教程,打开方式又和以前的不一样,比如这个SCG,压根就没有入门指导,所以这里写一个,以备后用。 一、集成 pom.xml <dependency> <groupI...

kut ⋅ 今天 ⋅ 0

建造模式

《JAVA与模式》之建造模式

Cobbage ⋅ 今天 ⋅ 0

WePY框架开发的小程序如何在微信web开发者工具中运行起来

一、首先需要安装node.js,安装步骤如下: 首先下载安装包 https://nodejs.org/en/download/ 点击下载相应的zip版本 然后将文件夹解压到任意目录 比如我这里解压到了:C:\Program Files\node...

Helios51 ⋅ 今天 ⋅ 0

使用EnumSet 代替位域(32)

1、位域(Bit field):使用or 运算将几个常量合并到一个集合中 位操作,可以有效地执行 AND 、OR 这样的位操作 但是 位域比int 常量枚举缺点更多 2、java.util 包里面的EnumSet 类是有效的替...

职业搬砖20年 ⋅ 今天 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部