2008-10-22 63 views
7

我目前正致力于自动化/改进包装我店的整个产品的发布过程。目前该产品的组合:版本信息的最佳实践?

  • Java服务器端代码库
  • XML配置和应用程序文件
  • 壳牌和批处理脚本为管理员
  • 静态地提供HTML页面
  • 和一些其他的东西,但大部分是这样的

所有或大部分都有其中包含各种版本信息,我们编辑出于各种目的。发布打包过程的一部分涉及到很多发现,grep'ing和sed'ing(用脚本)来更新信息。这种包装产品的粘合剂似乎已经以有机的,即时的方式拼凑在一起,并且保持非常可怕。例如,一些Java方法在发布时创建Date对象,其参数通过文本替换进行更新,而无需编译器验证......只是,urgh。

我试图避免给出使用实际软件(即CVS,SVN,蚂蚁等)的例子,因为我想避免“使用xyz的功能来做到这一点”,并更多地关注一般实践。我想为这个问题指责劣质设计,但如果我必须重新开始,仍然使用不同的技术,我不确定如何最好地处理这个问题,而不是放下约定。

我的问题是,是否有任何最佳实践或提示和技巧来维护和更新跨不同技术,文件类型,平台和版本控制系统的版本信息?

回答

2

事实上,完成克雷格安格斯的回答,拇指这里的规则应该是到不包括在正常分娩的文件任何元信息,但报告这些元数据(版本号,发布日期等)到一个特殊的文件 - 包含在发布 - 。

这有助于您使用一个VCS(版本控制系统)工具从开发到认证到试生产。
这意味着无论何时加载工作空间(用于开发,或用于测试或准备发布到生产环境中),它都是版本控制工具,可为您提供所有详细信息。

当您准备交付(一组打包文件)时,您应该询问VCS工具以了解您想保留的每个元信息,并将其写入包含在所述文件集中的特殊文件中。

即递送应该在外部目录被打包(任何工作空间外部)和:

  • 复制到共享目录(或Maven仓库)如果它是一个非官方释放(但只是一个快速包装,帮助隔壁的团队等待您的送货)。这样你就可以每天做10或20次,这并不重要:它们很容易丢弃。

  • 导入到VCS中以便作为正式发货,并且为了方便部署,因为您需要的只是要求版本工具提供正确版本的正确版本,并且您可以开始部署它。

注意:我刚刚描述了一个主要用于许多相互依赖的项目的发布管理过程。对于一个小型单个项目,您可以跳过VCS工具中的导入并将您的交付存储在其他地方。

3

创建一个包含版本号和都不同组件的参考性文件

  • Java文件可通过
  • XML引用的属性可以使用包括属性文件?
  • HTML可以使用JavaScript写在HTML从属性的版本号
  • Shell脚本可以读取文件中的
0

除了克雷格安格斯的包括使用的工具版本。