svn-maven-tomcat自动发布脚本
#!/bin/sh #svn-maven-tomcat自动发布脚本
#变量设置
svnpath=svn://10.60.10.120/研发部/xx-maven
svnusername=xxx
svnpassword=xxxn888
workplace=xxepp
projname=xxepp
tomcat_server=10.60.10.161
webappsPath=/usr/local/tomcat/webapps #环境变量设置
export JAVA_HOME=/usr/local/jdk18
export CLASSPATH=${JAVA_HOME}/lib
export PATH=${JAVA_HOME}/bin:$PATH
export M2_HOME=/usr/local/apache-maven-3.3.
export M2=$M2_HOME/bin
export PATH=$M2:$PATH rm -fr ${workplace} #从svn上面export代码
svn export ${svnpath} ./${workplace} --username ${svnusername} --password ${svnpassword} #maven编译
compileSuccessFlag= cd ${workplace}
/usr/local/apache-maven-3.3./bin/mvn clean package -Dmaven.test.skip=true if [ $? -eq ]; then
compileSuccessFlag=
echo "maven编译成功"
else
echo "maven编译失败"
fi cd ../ #如果编译失败,直接退出 if [ ${compileSuccessFlag} -eq ]; then
echo "编译失败,程序退出"
exit ;
fi #编译成功,war存在,则复制到tomcat目录,重启tomcat
warPath=./${workplace}/target/${projname}.war
if [ -f "${warPath}" ]; then #删除老的war包,将新的包拷贝过去
#ssh ${tomcat_server} rm -rf ${webappsPath}/${projname}.war
ssh ${tomcat_server} find ${webappsPath}/old/ -mtime +|xargs rm -rf
ssh ${tomcat_server} mv ${webappsPath}/${projname}.war ${webappsPath}/old/${projname}$(date +%s).war
ssh ${tomcat_server} rm -rf ${webappsPath}/${projname}
scp ./${workplace}/target/${projname}.war ${tomcat_server}:${webappsPath}/ #重启tomcat
echo "重启tomcat..."
ssh ${tomcat_server} 'source /root/.bash_profile;/usr/local/tomcat/bin/shutdown.sh'
sleep
if [ $? -eq ]; then
ssh ${tomcat_server} 'source /root/.bash_profile;/usr/local/tomcat/bin/startup.sh'
sleep
echo "重启成功"
else
echo "tomcat启动失败"
fi else
echo "war包不存在"
fi
备注:因maven服务器和tomcat服务器在不同的主机上,需要做公钥认证
svn-maven-tomcat自动发布脚本的更多相关文章
- linux 配置 tomcat 自动发布脚本
首先将打包好的 war 包(举例 management-20160809-1.0.war),传到 tomcat 的 webapps 目录下,然后在 tomcat 目录下新建 deploy.sh 脚本. ...
- Jenkins +svn +maven +tomcat+ ansible 自动化批量部署
Jenkins +svn +maven +tomcat+ ansible 自动化批量部署 一.部署svn yum install subversion 先创建目录 mkdir /home/svn 创建 ...
- Jenkins+tomcat自动发布的热部署/重启及遇到的坑解决办法
一.背景 公司的项目一直手动maven打包.上传服务器.关闭/开启tomcat,整个流程下来耗时耗力,虽然可以将所有流程通过shell脚本一次性解决,但如果可以通过idea的Jenkins插件一键自动 ...
- SVN利用Hooks自动发布网站
出于管理需要,也需要在公司内部实现自动发布流程.当开发机提交SVN代码之后,自动同步到测试服务器进行测试. 网络的拓扑简化为: 1台核心SVN服务器,使用的svn管理软件为Subversion Edg ...
- 设置SVN hooks实现自动发布
# CentOS下安装SVN yum -y install subversion svnserve --version cd /home/ mkdir svn cd svn/ /usr/bin/svn ...
- SVN与TFS自动同步脚本(很实用)
一直都在园子里看文章,因为各种原因懒得写文章.最近稍得空闲,把这几天的工作成果分享一下. 因为工作需要,开发人员使用Qt进行系统移动端的开发,Qt的版本控制却不提供连接TFS的设置,只有使用svn.没 ...
- Windows下配置Jenkins 实现自动发布maven项目至tomcat(svn+maven+tomcat)
Jenkins安装完成之后,需要我们对其配置,然后才可以实现自动部署项目. 前提 防火墙开放tomcat的8080端口 Linux(CentOS):firewall-cmd --zone=public ...
- JavaWeb+SVN+Maven+Tomcat +jenkins搭建持续集成环境和自动部署
https://blog.csdn.net/wh52788/article/details/80900477 https://blog.csdn.net/liyong1028826685/articl ...
- 项目持续集成环境(jenkins + SVN + maven + tomcat)
整体流程 每次SVN上代码有变动,触发自动构建动作,并部署到服务器的tomcat上,具体流程: 1.SVN上提交代码修改 2.maven执行Goals 3.将web工程打成war包 4.关闭服务器的t ...
随机推荐
- link_to和其对应要跳转的的url,用path和直接路由方法
link_to和其对应要跳转的的url,用path和直接路由方法 看看link_to <% @order.each do |oo| %> <div> <%= oo.nam ...
- thinkphp 前台测试
配置文件 <?php return array( 'DB_TYPE' => 'mysql', // 数据库类型 'DB_HOST' => 'localhost', // 服务器地址 ...
- 关于Struts2的action的execute方法
这个方法必须要有一个String类型的返回值,所以如果写很多if else的话,记得要在最后加一个else,就是无论如何就会放回一个字符串,否则编译会报错,在execute方法名字下面有红线.
- Android.mk文件c++头文件包含问题
Eclipse 中 Android.mk文件c++头文件包含问题 jni中的目录结构如下: 编译找不到头文件 LOCAL_PATH := $(call my-dir)LOCAL_C_INCLUDES ...
- getaddrinfo ENOTFOUND https://api.weixin.qq.com https://api.weixin.qq.com:443
原因:这是由于你当前的主机不能够连接到你填写的url. 解决方法: 先ping api.weixin.qq.com ping不通的话,就是外网访问的问题. 开通外网访问就可以了.
- C++ 基本的输入输出
C++ 基本的输入输出C++ 标准库提供了一组丰富的输入/输出功能,我们将在后续的章节进行介绍.本章将讨论 C++ 编程中最基本和最常见的 I/O 操作. C++ 的 I/O 发生在流中,流是字节序列 ...
- IOS内购支付server验证模式
IOS 内购支付两种模式: 内置模式 server模式 内置模式的流程: app从app store 获取产品信息 用户选择须要购买的产品 app发送支付请求到app store app store ...
- MySQL 数据库常用命令小结
MySQL 数据库常用命令 1.MySQL常用命令 create database name; 创建数据库 use databasename; 选择数据库 drop database name 直接删 ...
- centos7命令总结
1,查看cpu信息 lscpu 2,网络配置 ip route 查看路由 nmcli nmcli connection show 显示所有连接 nmcli connection show ...
- 10046事件sql_trace跟踪
查看 sql 执行计划的方法有许多种, 10046 事件就是其中的一种. 与其他查看 sql 执行计划不同, 当我们遇到比较复杂的 sql 语句, 我们可以通过 10046 跟踪 sql 得到执行计划 ...