浅谈:关于 Java 代码部署

2015年02月03日 陈鑫杰

偶尔发现,代码部署是一件很有意思的事情。需要耐着性子去整理修改过的代码,修改过的功能,然后放在一个版本文件中。这让人觉得很棒,从这一排排版本文件中,你可以随意的查看某个时间段、或某个版本发生了哪些变化,数据结构、代码逻辑、产品功能?
从一枚攻城狮的角度来说,发现问题,追溯源头,永远是一件乐此不疲的事情。通过严谨的版本化方式去部署,可以很轻易的定位问题所在。
然而然而,这版本化的过程比较枯燥而乏味,我也知道能坚持多久 ~~

概述

通过大家的不断努力,新系统正式上线了。
虽然…但是上线并不意味结束,相反阶梯状的 project 仍在继续,所以往后的系统更新已经成为日后需要谨慎对待的事情之一。

资源

SVN:公司在软件工程上还是非常上心的,SVN 设置的非常贴心。
服务器:测试、正式
数据库:测试、正式
人员配置:测试人员、开发技术员

可选方式

  1. eclipse 打 war 包进行部署
  2. 本地编译后部署

吐槽

war 包部署,简单直接又粗暴。
不需要花费过多的时间,只要在部署前记得修改数据库配置文件即可。
但是…对于包含文件上传等功能的系统,就略为麻烦些。必须手动把服务器上的上传文件进行备份,等新的 war 包被解压缩后,再手动拷贝到相应目录下。这个步骤略显繁琐,但又不得不做,除非另有上传文件的服务器…

本地编译后部署,就要麻烦些。
首先,需要本地 Tomcat 运行通过。然后再把 webapps 下编译好的工程,拷贝到服务器上进行发布。

采用方式

其实我想使用最终方式这个词,但是想想还有进步完善的空间。

  1. 大原则
    功能先发布测试环境,经测试人员反复测试,开发技术员反复修改完善之后,再发布到正式环境。
  2. 版本号
    设置版本号1.1.0作为初版,往后每一版(部署测试/正式环境时的版本)都必须有版本号。
    版本号可以自定义。大规模修改.部分新功能调整.小功能调整
  3. SVN
    没有代码版本控制的技术公司请自觉面壁
    每次确定发版前,检查所有在发版范围内的 SVN 提交,并整理 SVN 备注用于生成版本更新说明。
    整理代码,将修改过的代码整理到版本文件夹中(保留原有路径)。
    整理 sql,将数据库调整转化为 sql 语句,并在该版本文件夹下建立 README.txt 文件用于记录 sql 语句。
  4. 完成版本
    • 版本文件夹,以日期+版本号命名。
    • 版本文件夹下,需要有该版本所修改的(保留路径的)工程文件。即直接拷贝覆盖服务器上的工程即可。
    • 版本文件夹下,需要有 README.txt。记录版本号、sql 语句、对内的修改备注(例如:改了哪个类的哪个方法)、对外的版本说明(例如:增加了某个功能)。
    • 上传 SVN
  5. 部署
    • 停止 Tomcat
    • 从版本文件夹下的 README.txt 中拷贝 sql 语句,修改测试数据库的数据结构。
    • 从版本文件夹下直接拷贝工程文件夹(仅包含本次修改的代码文件),覆盖到服务器的工程文件夹。
    • 启动 Tomcat
    • 打开浏览器登录确认
    • 通知新版本发布成功,并提供修改的功能列表给测试人员。

结束语

漫漫人生路,让我们且行且珍惜。

(转载本站文章请注明作者和出处 FoamValue – www.foamvalue.com ——=== 访问 404页面 寻找遗失儿童。 ===——