自动化部署java web项目
2017-02-05 09:28
423 查看
关于自动化部署已经说了很多,也有很多专业的工具。本文不敢高攀那些高大上的方案,只是从自身实际出发,主要使用svn这个版本管理的工具,方便了发布和部署。
直接更换war包
替换相应的jar包
前者在有时候频繁部署的时候很慢(因为war包比较大,至少都有几十M,每次都需要几分钟);而后者先要找到更新的jar包,再找到生产环境上的相应位置,然后再一一替换,步骤繁琐而且容易出错。而且两者有同样的问题,就是出现bug时,无法确认生产环境究竟部署的是哪一版本。
为完成这一工作,我写了如下3个脚本:
compile_produce.sh 编译生产版本
check_produce.sh 生产环境上首次部署
update_produce.sh 生产环境上更新部署
脚本分别如下:
1. compile_produce.sh
2. check_produce.sh
3. update_produce.sh
最后一步,看到tomcat的日志输出,可以说明发布成功了。
采用这一方法,最终部署只要执行编译和更新两个脚本就可以了。做到了发布的有序性,时间也很快,一般只需要十几秒即可。而且可以精确定位生产环境的版本,避免了由于版本不清产生的一些问题。
一. 原因
做为一个中小团队,发布和部署是家常便饭,而且容易出问题,我们一般采用的方法有如下两种:直接更换war包
替换相应的jar包
前者在有时候频繁部署的时候很慢(因为war包比较大,至少都有几十M,每次都需要几分钟);而后者先要找到更新的jar包,再找到生产环境上的相应位置,然后再一一替换,步骤繁琐而且容易出错。而且两者有同样的问题,就是出现bug时,无法确认生产环境究竟部署的是哪一版本。
二. 解决办法
为了解决这一问题,我使用svn这个版本管理工具,简单的说,就是把需要部署的所有文件都放置到svn服务器上,当需要重新发布的时候,在生产环境上使用svn更新到当前版本。为完成这一工作,我写了如下3个脚本:
compile_produce.sh 编译生产版本
check_produce.sh 生产环境上首次部署
update_produce.sh 生产环境上更新部署
脚本分别如下:
1. compile_produce.sh
#!/bin/bash -e cd path svn update --username=deploy mvn clean install -P produce echo "[produce environment]-------------------------------------------" echo "[produce environment] compile completed" rm -rf release mkdir release cp -r target/app/* release/ cd release echo "[produce environment] copy completed" svn add * --force svn commit -m "produce environment release" --username=deploy echo "[produce environment] commit completed" echo "[produce environment]-------------------------------------------"
2. check_produce.sh
#!/bin/bash -e cd path svn checkout url --username=deploy --password=deploy
3. update_produce.sh
#!/bin/bash cd path svn revert -R . svn update --username=deploy --password=deploy echo "[produce environment]-------------------------------------------" echo "[produce environment] update completed" pid=`ps -ef | grep tomcat7 | grep -v 'grep' | awk '{print $2}'` kill -9 $pid echo "[produce environment] kill process completed" tomcat/tomcat7/bin/startup.sh echo "[produce environment] start tomcat" echo "[produce environment]-------------------------------------------" DATE=`date '+%y-%m-%d'` tail -f /fqgj/tomcat/tomcat7/logs/catalina.${DATE}.out
最后一步,看到tomcat的日志输出,可以说明发布成功了。
采用这一方法,最终部署只要执行编译和更新两个脚本就可以了。做到了发布的有序性,时间也很快,一般只需要十几秒即可。而且可以精确定位生产环境的版本,避免了由于版本不清产生的一些问题。
相关文章推荐
- Java Web项目在Linux服务器自动化部署
- Java Web项目在Linux服务器自动化部署续-整合Bamboo
- java web项目打包部署
- Java Web项目部署遇到java.lang.UnsupportedClassVersionError: Bad version number in .class file,错误解决
- Eclipse部署Java Web项目到Tomcat出错
- 在linux下用tomcat部署java web项目的过程与注意事项
- capistrano结合SVN对PHP项目进行自动化代码部署、代码回滚
- java web项目部署成功后 总是404不能访问
- 部署Java Web项目报错(二)
- 在linux下用tomcat部署java web项目的过程与注意事项(原创)
- java Web 项目部署在tomcat的问题
- 部署Java Web项目报错(一)
- Java Web项目部署问题
- 如何在Linux中安装tomcat,部署Java web项目
- 在linux下用tomcat部署java web项目的过程与注意事项
- 在linux下用tomcat部署java web项目的过程与注意事项(原创)
- 使用ant脚本,对java web项目,编译、打包、发布部署到tomcat
- 项目自动化之道-7.安装与部署之增强安装形象
- Java Web开发Tomcat中三种部署项目的方法
- Java Web项目部署Tomcat运行出错