前言
在工作中,经常碰到部署web项目比较繁琐的事儿,有时出现遗漏更新文件,有时失误替换了重要文件。这时我们可以考虑走捷径,借助脚本实现一键更新部署。
这里使用的案例为SVN上的web源码,实现更新部署项目。
首先在服务器安装maven
- 下载SVN,地址:apache-maven-3.3.9.bin.tar.gz
- 解压到路径
/data/apache-maven-3.3.9
- 修改配置文件,这里不叙述。
- 编辑
文件//etc/profile
vi /etc/profile
在结尾处增加下面两行代码
export M2_HOME=/data/apache-maven-3.3.9
export PATH=$PATH:$M2_HOME/bin
执行保存命令
!wq
- 刷新应用profile
- 测试是否安装成功
mvn -v
找到你的web 部署所在tomcat地址
这里使用地址为:
/data/web/tomcat-8082
创建更新记录文件夹
mkdir /data/update_web
在文件夹下首次执行下载svn web项目,创建svn元信息,保证一键更新脚本无通讯障碍。
svn checkout svn项目地址 /data/update_web/ --username=svn账号 --password=svn密码
#(R)eject, accept (t)emporarily or accept (p)ermanently? t
创建更新部署脚本
在目录
/data/update_web/
下
创建更新脚本:
touch build.sh
赋脚本权限:
chmod +x build.sh
编辑脚本:
vi build.sh
添加以下内容
tomcat=/data/web/tomcat-8082
svn update && mvn clean package -DskipTests
if [ $? -eq 0 ];then
# 部署到tomcat
rsync -av --progress --delete \
--exclude="login.jsp" \
--exclude="WEB-INF/web.xml" \
target/szsys_dispose $tomcat/webapps/
# 重启tomcat
pid=`ps -ef | grep 8082 | grep -v grep | awk '{print $2}'`
if [ ! -z $pid ];then
kill -9 $pid
fi
set -m
$tomcat/bin/startup.sh
tail -f $tomcat/logs/catalina.out
fi
参数说明
脚本里面的tomcat=为tomcat路径, --exclude为不更新文件, target/szsys_dispose为项目打包名称,8082 为tomcat端口。
保存脚本
执行测试
./build.sh