SargerasWang's Blog

我常常思考为什么鸟儿拥有整片天空,却常常停留在一个地方。然后我问了自己同样的问题。

简单的linux下maven程序自动部署脚本

vps服务器弄好之后,每次更改完代码都是本地打包,上传war到服务器,再替换数据库配置,重启服务. 刚开始偶尔一次还好,但频繁操作就受不了了,然后写了以下脚本.

部署流程

1.从github更新

1
git pull

2.替换数据库配置

1
cp -f ../db_config/db.properties ./src/main/resources/props/db.properties

修改log4j配置文件的第一行,服务器端有mail,本机没有

1
sed -i '1c log4j.rootLogger=INFO,stdout,stderr,mail' ./src/main/resources/log4j.properties

3.打包

1
mvn package

4.停止tomcat

1
service tomcat stop

5.删除原文件夹

1
rm -rf /var/lib/tomcat7/webapps/ROOT

6.改名+复制包到tomcat

1
2
mv target/WebManager.war target/ROOT.war
cp -f target/ROOT.war /var/lib/tomcat7/webapps/

7.启动tomcat

1
service tomcat7 start

shell:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#!/bin/sh                                                                                                                                   
echo "==============================开始部署=============================="
cd /usr/local/project/csm-framework/
echo "##############################更新git##############################"
git pull
echo "########################替换数据库配置#############################"
cp -f ../db_config/db.properties ./src/main/resources/props/db.properties
echo "########################修改Log4j配置#############################"
sed -i '1c log4j.rootLogger=INFO,stdout,stderr,mail' ./src/main/resources/log4j.properties
echo "############################打包###################################"
mvn clean package
echo "#########################停止tomcat################################"
service tomcat7 stop
echo "##########################删除原文件夹#############################"
rm -rf /var/lib/tomcat7/webapps/*
echo "##########################解压到webapps############################"
unzip -o target/WebManager.war -d /var/lib/tomcat7/webapps/ROOT/
echo "############################启动tomcat#############################"
service tomcat7 start
echo "==============================部署完成=============================="