我目前正致力于自动化/改进包装我店铺整个产品的发布流程。目前该产品是:
的组合其中包含各种或大部分版本信息,用于不同目的。发布打包过程的一部分涉及进行大量查找,grep'ing和sed'ing(在脚本中)以更新信息。这种包装产品的胶水似乎是以有机的,及时的方式拼凑在一起,维护起来非常糟糕。例如,某些Java方法在发布时创建Date对象,其参数由文本替换更新,无需编译器验证... just,urgh。
我正在尝试避免提供使用的实际软件(例如CVS,SVN,ant等)的示例,因为我想避免“使用xyz的功能来执行此操作”并将更多精力放在一般实践上。我想责怪这个问题的劣质设计,但如果我不得不重新开始,仍然使用不同的技术,我不确定如何最好地处理这个问题,除了制定惯例。
我的问题是,是否有关于跨不同技术,文件类型,平台和版本控制系统维护和更新版本信息的最佳实践或提示和技巧?
答案 0 :(得分:3)
创建一个包含版本号的属性文件,并让所有不同的组件引用属性文件
答案 1 :(得分:2)
确实,要完成Craig Angus的回答,这里的经验法则应该是 不包括正常传递文件中的任何元信息 ,但要报告这些元数据-data(版本号,发布日期等)到一个特殊文件中 - 包含在发行版中 - 。
当您使用一个VCS(版本控制系统)工具从开发到认证到预生产时,这会有所帮助。
这意味着无论何时加载工作区(用于开发,测试或准备发布到生产中),它都是版本控制工具,它为您提供所有细节。
当您准备交付(一组打包文件)时,您应该询问VCS工具有关您要保留的每个元信息,并将它们写入包含在上述文件集中的特殊文件中。
该传递应该打包在外部目录(任何工作空间之外)和:
复制到共享目录(或maven存储库),如果它是非官方版本(但只是一个快速包装,用于帮助隔壁的团队等待您的交付)。这样你每天可以赚10或20,这没关系:它们很容易丢弃。
导入到VCS中以作为正式交付,并且为了便于部署,因为您只需要向版本控制工具询问正确版本的正确交付,并且您可以开始部署它
注意:我刚刚描述了一个主要用于许多相互依赖项目的发布管理流程。对于一个小型单个项目,您可以跳过VCS工具中的导入并将交付存储在其他位置。
答案 2 :(得分:0)
除了Craig Angus之外,还包括使用的工具版本。