Linux下Maven+SVN自动打包脚本
一、环境介绍
二、编写maven打包脚本
#!/bin/sh
# this is maven install framework script
echo "[The install framework script is running.....]"
# go to framework dir
cd /root/workspace/framework
# 定义该脚本的临时文件的名字
TmpFileName=/tmp/framework_sh_tmp
# 先把原来的这个脚本的临时文件删除
rm -rf ${TmpFileName}*
# 获取当前时间
Time=`date +"%Y%m%d%H%M%S"`
# 把mvn命令的结果在屏幕显示的同时写入到文件中,文件名为:上面定义的文件名+当前时间
mvn clean install | tee ${TmpFileName}${Time}
# 文件中查找 BUILD SUCCESS 字眼
result=`grep 'BUILD SUCCESS' ${TmpFileName}${Time}`
# 如果结果为空那就是失败,否则就成功了
if [ -z "$result" ];
then
echo "[ install framework error! -------- you can see the log on ${TmpFileName}${Time}]"
echo "[ ------------------------ script exit!! ------------------- ] "
exit
else
echo "[framework install SUCCESSS] "
fi
echo "[The install framework script is end]"
#!/bin/sh
# this is maven install framework script
echo "[The install framework script is running.....]"
# go to framework dir
cd /root/workspace/framework
# 定义该脚本的临时文件的名字
TmpFileName=/tmp/framework_sh_tmp
# 先把原来的这个脚本的临时文件删除
rm -rf ${TmpFileName}*
# 获取当前时间
Time=`date +"%Y%m%d%H%M%S"`
# 把mvn命令的结果在屏幕显示的同时写入到文件中,文件名为:上面定义的文件名+当前时间
mvn clean install | tee ${TmpFileName}${Time}
# 文件中查找 BUILD SUCCESS 字眼
result=`grep 'BUILD SUCCESS' ${TmpFileName}${Time}`
# 如果结果为空那就是失败,否则就成功了
if [ -z "$result" ];
then
echo "[ install framework error! -------- you can see the log on ${TmpFileName}${Time}]"
echo "[ ------------------------ script exit!! ------------------- ] "
exit
else
echo "[framework install SUCCESSS] "
fi
echo "[The install framework script is end]"
#!/bin/sh
# this is maven package sp script
echo "[The package sp script is running.....]"
# go to sp dir
cd /root/workspace/sp
# 定义该脚本的临时文件的名字
TmpFileName=/tmp/sp_sh_tmp
# 先把原来的这个脚本的临时文件删除
rm -rf ${TmpFileName}*
# 获取当前时间
Time=`date +"%Y%m%d%H%M%S"`
# 把mvn命令的结果在屏幕显示的同时写入到文件中,文件名为:上面定义的文件名+当前时间
mvn clean package | tee ${TmpFileName}${Time}
# 文件中查找 BUILD SUCCESS 字眼
result=`grep 'BUILD SUCCESS' ${TmpFileName}${Time}`
# 如果结果为空那就是失败,否则就成功了
if [ -z "$result" ];
then
echo "[ package sp error! -------- you can see the log on ${TmpFileName}${Time}]"
echo "[ ------------------------ script exit!! ------------------- ] "
exit
else
echo "[ sp package SUCCESSS] "
fi
echo "[The package sp script is end]"
#!/bin/sh
# this is maven package sp script
echo "[The package sp script is running.....]"
# go to sp dir
cd /root/workspace/sp
# 定义该脚本的临时文件的名字
TmpFileName=/tmp/sp_sh_tmp
# 先把原来的这个脚本的临时文件删除
rm -rf ${TmpFileName}*
# 获取当前时间
Time=`date +"%Y%m%d%H%M%S"`
# 把mvn命令的结果在屏幕显示的同时写入到文件中,文件名为:上面定义的文件名+当前时间
mvn clean package | tee ${TmpFileName}${Time}
# 文件中查找 BUILD SUCCESS 字眼
result=`grep 'BUILD SUCCESS' ${TmpFileName}${Time}`
# 如果结果为空那就是失败,否则就成功了
if [ -z "$result" ];
then
echo "[ package sp error! -------- you can see the log on ${TmpFileName}${Time}]"
echo "[ ------------------------ script exit!! ------------------- ] "
exit
else
echo "[ sp package SUCCESSS] "
fi
echo "[The package sp script is end]"
三、编写自动svn更新代码+maven打包并发布的脚本
- 具体步骤为:
- svn命令更新framework项目
- svn命令更新sp项目
- maven命令install公共框架项目framework
- maven命令打包sp项目
- 停止tomcat
- 删除tomcat里面的项目
- 把新打包好的项目copy到tomcat中
- 启动tomcat
- 脚本代码为(/root/deploy_sp.sh):
# 此脚本用于自动从svn上面更新sp代码并打包
cd /root/workspace/framework
echo "[ update framework from svn....]"
svn update
cd /root/workspace/sp
echo "[ update sp from svn....]"
svn update
echo "[ maven install framework ....]"
#导入安装framework脚本
source /root/workspace/mvnscript/install_framework.sh
echo "[ maven package sp....]"
#导入打包sp脚本
source /root/workspace/mvnscript/package_sp.sh
#打包完成后先停止tomcat
/root/tomcat-instance/shutdown_sp.sh
#删除tomcat里面原来的sp相关的war包和文件夹
rm -rf /root/tomcat-instance/sp-tomcat/webapps/sp*
#copy新的war包到tomcat里面
cp /root/workspace/sp/sp-deploy/target/sp.war /root/tomcat-instance/sp-tomcat/webapps/sp.war
echo "[ sp.war copy SUCCESS ]"
#重新启动tomcat
/root/tomcat-instance/sp-tomcat/bin/startup.sh
cd ~
echo [" sp deploy SUCCESS "]
# 此脚本用于自动从svn上面更新sp代码并打包
cd /root/workspace/framework
echo "[ update framework from svn....]"
svn update
cd /root/workspace/sp
echo "[ update sp from svn....]"
svn update
echo "[ maven install framework ....]"
#导入安装framework脚本
source /root/workspace/mvnscript/install_framework.sh
echo "[ maven package sp....]"
#导入打包sp脚本
source /root/workspace/mvnscript/package_sp.sh
#打包完成后先停止tomcat
/root/tomcat-instance/shutdown_sp.sh
#删除tomcat里面原来的sp相关的war包和文件夹
rm -rf /root/tomcat-instance/sp-tomcat/webapps/sp*
#copy新的war包到tomcat里面
cp /root/workspace/sp/sp-deploy/target/sp.war /root/tomcat-instance/sp-tomcat/webapps/sp.war
echo "[ sp.war copy SUCCESS ]"
#重新启动tomcat
/root/tomcat-instance/sp-tomcat/bin/startup.sh
cd ~
echo [" sp deploy SUCCESS "]
四、小结
Linux下Maven+SVN自动打包脚本的更多相关文章
- linux下使用shell 自动执行脚本文件
以下实例本人在Centos6.5 64位操作系统中使用 一.定时复制文件 a.在/usr/local/wfjb_web_back目录下创建 tomcatBack.sh文件 文件内容: #将tomcat ...
- 在Linux下使用gradle自动打包
一.下载软件包 1.下载地址 wget https://dl.google.com/android/android-sdk_r24.4.1-linux.tgz wget http://services ...
- linux下简单的备份的脚本 2 【转】
转自:http://blog.chinaunix.net/xmlrpc.php?r=blog/article&uid=26807463&id=4577034 之前写过linux下简单的 ...
- React Native开发中自动打包脚本
React Native开发中自动打包脚本 在日常的RN开发中,我们避免不了需要将我们编写的代码编译成安装包,然后生成二维码,供需要测试的人员扫描下载.但是对于非原生的开发人员来说,可能不知如何使用X ...
- Linux下安装SVN,仓库创建,用户权限管理
Exported from Notepad++ Linux下安装SVN,仓库创建,用户权限管理 1.SVN安装 Ubuntu系统下安装:sudoapt-getinstallsubv ...
- Linux下的SVN服务器搭建
Linux下的SVN服务器搭建 鉴于在搭建时,参考网上很多资料,网上资料在有用的同时,也坑了很多人 本文的目的,也就是想让后继之人在搭建svn服务器时不再犯错,不再被网上漫天的坑爹作品所坑害,故此总 ...
- linux下安装svn
linux下SVN服务器如何搭建和使用 | 浏览:12117 | 更新:2013-09-18 14:28 | 标签:linux linux下SVN服务器如何搭建和使用?说到SVN服务器,想必大家都知道 ...
- linux下搭建svn本地服务器
在linux下搭建svn本地服务器可以很好的管理自己的代码,具体过程如下: # mkdir svn_local # cd svn_local # svnadmin create led_diplay ...
- xcode8.3 shell 自动打包脚本 记录
题记 xcode升级8.3后发现之前所用的xcode自动打包基本无法使用,因此在网上零碎找到些资料,将之前的脚本简化.此次脚本是基于xcode证书配置进行打包(之前是指定描述文件.相对繁琐).因此代码 ...
随机推荐
- 单元测试(一)-NUnit基础
单元测试作为提高代码和软件质量的有效途径,其重要性和益处自不必多说,虽然我没有实践过TDD之类,但坚信单元测试的积极作用.作为一种开发方法,单元测试早在上世纪70年代就已经在Smalltalk语言被运 ...
- Java 装饰器模式详解
转载请注明出处:http://blog.csdn.net/zhaoyanjun6/article/details/56488020 前言 在上面的几篇文章中,着重介绍了Java 中常见的 IO 相关知 ...
- 如何在 Windows 10 中搭建 Node.js 环境?
[编者按]本文作者为 Szabolcs Kurdi,主要通过生动的实例介绍如何在 Windows 10 中搭建 Node.js 环境.文章系国内 ITOM 管理平台 OneAPM 编译呈现. 在本文中 ...
- Sql server 的float和real类型会产生科学计数法,如何消除科学计数法
sqlserver 查询的 float 类型 如果是0.00000000001的话,会被显示为1E-11,请问怎么才能让查询出的结果显示为正常显示方式而不是科学计数法? 答案: float 和 rea ...
- EntityFramework Code-First 简易教程(一)
前言:学习了EF框架这么久,还没有好好总结一番,正好遇到一国外的网站,发现不错,随即翻译过来,一是让自己复习一遍,二是供广大初学者学习,翻译过程中加入了一些自己的理解,如有错误,还请指出,多谢多谢.好 ...
- Mysql 5.7源码编译启动 报error问题:The server quit without updating PID file (/data/data_mysql/mysql.pid).
一般是报error问题就是我们的mysql没有权限,这里主要是指三点:一个是mysql的安装主目录要设为mysql用户和用户组.一个是logs目录设置为mysql用户以及用户组.还有一个是data目录 ...
- vc使用jsoncpp头文件冲突问题
编译时出现 1>d:\program files (x86)\microsoft visual studio 9.0\vc\include\xdebug(32) : warning C4229: ...
- 团队作业——Alpha冲刺 9/12
团队作业--Alpha冲刺 冲刺任务安排 杨光海天 今日任务:修复编辑界面与弹窗界面合并中出现的BUG 明日任务:希望完成编辑界面所有接口交互的功能 郭剑南 今日任务:优化图像预处理所有功能的函数代码 ...
- 分布式全局ID生成器设计
项目是分布式的架构,需要设计一款分布式全局ID,参照了多种方案,博主最后基于snowflake的算法设计了一款自用ID生成器.具有以下优势: 保证分布式场景下生成的ID是全局唯一的 生成的全局ID整体 ...
- PyQt5--InputDiaglog
# -*- coding:utf-8 -*- ''' Created on Sep 14, 2018 @author: SaShuangYiBing Comment: ''' import sys f ...