在开发完成之后,每次的项目更新迭代,都很繁琐,不是更新war包就是更新部分字节码文件,上周经过一段时间的学习和摸索,搞定了利用sh脚本在服务器上来更新部署项目代码,那个流畅,比以前的过程快了太多。
整个原理so easy! 在开发工具中提交代码到git,在服务器上把代码pull下来,然后maven打包,最后执行tomcat启动命令
以下为步骤:
由于之前使用有道云笔记,其中好多截图,就直接把链接贴过来了
1.linux上安装maven(见笔记–centOS安装maven)
2.设置git生成密钥,同步(见笔记–linux设置git 并使用同步)
3.设置git记住密码(见笔记–linux服务器git pull push时提示输入账号密码之免除设置)
4.编写自动git pull+maven打包+tomcat重启 脚本
#!/bin/sh
#linux上gitpull下来的仓库地址
git_path="/usr/local/git-repos/travel2"
#linux上maven打包后的项目war包地址
war_path=$git_path"/target/travel.war"
#linux上tomcat的webapps的项目地址
pro_path="/usr/local/tomcat7_8080/webapps/travel"
#linux上tomcat的bin执行地址
tom_bin="/usr/local/tomcat7_8080/bin"
#1.从git上拉取代码
echo "goto..."$git_path
cd $git_path
echo "git...pull...begin..."
git pull
echo "git...pull...end..."
#2.maven清除并且重新打包项目
echo "build...war...begin..."
mvn clean -U package -DskipTests -Pproduction > /dev/null
echo "build...war...end..."
#3.停止tocmat 并且杀掉进程
echo "tomcat...reload...begin..."
sh $tom_bin"/shutdown.sh"
# kill -9 `ps aux|grep tomcat7_8080 |grep -v grep |grep java |awk '{print $2}'`
# sleep 1
#4.删除tomcat下旧的项目文件,并且解压新的war包到这里
rm -rf $pro_path"/*"
echo "delete...old...project..."
unzip -o $war_path -d $pro_path > /dev/null
echo "unzip...war...end..."
#5.启动tomcat
sh $tom_bin"/startup.sh"
echo "tomcat...reload...end....."
5.直接运行脚本,进行测试
大概原理图: