[项目部署]使用Shell脚本简化部署操作
1. 先说下部署Java项目的一般操作
- 停掉tomcat服务器
- 使用新的的ROOT.war,替换旧的ROOT.war
- 启动tomcat
2. 接着说下我遇到的问题
- 环境变量繁多,有开发环境、本地环境、测试环境、生产环境。每次部署需要手动将正在使用的环境变量换为正式环境,太麻烦!
- 有一个40M+的zip说明文档几乎没变过,然而我的所有代码也才60M+,每次上传说明文档浪费资源
- 所以我的一般操作就是
```bash
# cd /opt/apache-tomcat/webapps
# service tomcat stop
# rm -rf /opt/apache-tomcat/webapps/*
# cp /opt/tmp/ROOT.war .
# unzip -oq ROOT.war -d ROOT
# mv ROOT/WEB-INF/classes/env-pro.proerties ROOT/WEB-INF/classes/env.properties
# cp /opt/tmp/helpdoc.zip static/help
# service tomcat start
```
3. 当我重复操作了**一百遍**以后,我发现这好像应该是程序干的事情,所以现在我是这么操作的
```bash
# cd /opt/deploy
# cp /opt/tmp/ROOT.war .
# ./deploy.sh
```
现在就爽多了,具体deploy.sh内容如何,可以看[deploy.sh](http://os1jc62ua.bkt.clouddn.com/FtKjZ8FLbYsdcmIp2YUkNn7TY8yQ)
- 我还做了点小小的优化,把解压文件、复制帮助文档、替换环境变量都提前做好了,这让服务器的停机时间更短