Linux下基于Maven的自动化打包发布项目
来源:互联网 发布:淘宝v达人 编辑:程序博客网 时间:2024/06/10 02:27
基于Maven的自动化打包发布项目
1、配置项目文件 prolist.config
svn://10.1.23.215/Hive/HiveUDFIK hive-ik jar 10.130.2.245 /opt/bin/UDFsvn://10.1.23.215/Tools/WordBank WordBank war 10.130.3.211 /opt/tomcat/webappssvn://10.1.23.215/REST/RestMysqlR restweb war 10.130.3.211 /opt/tomcat/webapps参数分别为: svn的路径,打包的名称,打包的方式jar或者war,服务器地址,服务器的路径,以空格分隔。
2、调度脚本 runAutoPak.sh
#!/bin/bash##owner:dp#cronTime:30 1 * * *#author:root#mail:wuke@staff.hexun.com#commitDate:2016-02-25#inputData:prolist.config#outputData: project.war#private:#cronDir:/opt/autopackage/bin#cronfile:runAutoPak.sh#cronlogDir:/opt/autopackage/bin/runAutoPak.log#describe:访问路径#note:# 思路简述:# # 参数说明:# prolist.config# svn的路径,打包的名称,打包的方式jar或者war,服务器地址,服务器的路径,以空格分隔。while read mylinedo svnurl=`echo $myline | awk '{print $1}'` fileName=`echo $myline | awk '{print $2}'` fileType=`echo $myline | awk '{print $3}'` serverurl=`echo $myline | awk '{print $4}'` serverdir=`echo $myline | awk '{print $5}'` echo $svnurl $fileName $fileType $serverurl $serverdir /opt/autopackage/bin/autopackage.sh $svnurl $fileName $fileType $serverurl $serverdir waitdone < /opt/autopackage/bin/prolist.configwaitif [ "$fileType" = "war" ]; then echo "release war"nohup /opt/autopackage/bin/restartTomcat.sh > /opt/autopackage/bin/res.log 2>&1 $echo "vaildate server"nohup /opt/autopackage/bin/vailTomcat.sh > /opt/autopackage/bin/vail.log 2>&1 $else echo "release jar"fi
循环取配置文件里的项目参数来打包
3、打包脚本 autopackage.sh
#!/bin/bash#source /etc/profiletoday=`date --date='0 days ago' +%Y-%m-%d`cd /opt/autopackage/svncodeprdName=${1##*/}rm -rf /opt/autopackage/svncode/$prdNamesvn co $1cd $prdNamemvn clean packagecd targetssh -t -p 22 root@$4 "rm -rf $5/$2.$3.*.bakmv $5/$2.$3 $5/$2.$3.$today.bakrm -rf $5/$2" < /dev/nullscp $2.$3 $4:$5
4、打包上传后重启服务器 restartTomcat.sh
#!/bin/bash#ssh -t -p 22 root@10.130.3.211 "/opt/tomcat/bin/restart.sh"
#!/bin/bash #source /etc/profile master=`ps -ef | grep Bootstrap | grep tomcat | awk '{print $2}'` echo $mastertoday=`date --date='0 days ago' "+%Y-%m-%d"`todayTime=`date --date='0 days ago' "+%Y%m%d%H%M%S"` if [ "$master" != "" ]; then echo "Tomcat Master is restart!" kill -9 $master mv /opt/tomcat/logs/localhost.$today.log /opt/tomcat/logs/localhost.$todayTime.log/opt/tomcat/bin/startup.sh else /opt/tomcat/bin/startup.shfi
5、验证发布的项目是否正常 vailTomcat.sh
#!/bin/bash#ssh -t -p 22 root@10.130.3.211 "/opt/tomcat/bin/validateTomcat.sh"
调用远程服务器的验证脚本 validateTomcat.sh
#!/bin/bash#today=`date --date='0 days ago' +%Y-%m-%d`msg=`cat /opt/tomcat/logs/localhost.$today.log | grep java.lang | grep Exception`if [ "$msg" != "" ]; then echo "recovery!" cd /opt/tomcat/webappsrev=`ls | grep $today | grep bak`i=1 while((1==1)) do split=`echo $rev|cut -d " " -f$i` if [ "$split" != "" ] then ((i++)) echo $split prdName=${split%war*}warecho $prdNamerm -rf $prdNamemv $split $prdName else break fi done wait/opt/tomcat/bin/restart.shelse echo "ok" fi
如果项目发布失败则恢复到原来的版本
6、crontab 定时调度脚本
45 13 * * * /opt/autopackage/bin/runAutoPak.sh > /opt/autopackage/bin/runAutoPak.log 2>&1
2 0
- Linux下基于Maven的自动化打包发布项目
- Maven 项目打包发布
- Maven 项目打包发布
- Maven 项目打包发布
- linux的jenkins安装与使用jenkins自动化打包maven项目部署到tomcat
- Android项目自动化--apk的打包、加固及其发布
- maven项目打包发布问题
- linux下maven+svn自动化发布软件之Jenkins最详细的介绍
- linux下maven+svn自动化发布软件之Jenkins最详细的介绍
- 小纪--maven项目打包发布到linux
- 【Jenkins教程二】基于Linux实现Jenkins+maven+tomcat的自动化构建部署项目
- 【Jenkins教程三】基于Linux实现Jenkins+maven+git+tomcat的自动化构建部署项目
- Maven 项目自动化打包部署(Jboss & Tomcat)
- Linux下Qt程序的打包发布
- Linux下Qt程序的打包发布
- Linux下Qt程序的打包发布
- Linux服务器端项目自动化发布
- git linux上自动化打包发布脚本
- Convert Sorted List to Binary Search Tree
- 多个WEB服务器,图片同步方法
- 【uploadify】初始化请求当前页错误解决
- OpenSSl 生成证书
- 详解Linux-I2C驱动
- Linux下基于Maven的自动化打包发布项目
- C语言实现单链表节点的删除(不带头结点)
- Android平台类加载流程源码分析
- 腾讯后台开发面试题及答案
- 作业day08
- libsqlite3.dylib找不到
- redis内部数据结构--简单动态字符串sds
- RxJava 转换操作符groupBy
- 推荐提升 Android 性能的建议