我目前正在自动化/改进包装我商店的整个产品的发布流程。目前该产品是以下产品的组合:
- Java 服务器端代码库
- XML 配置和应用程序文件
- 面向管理员的 Shell 和批处理脚本
- 静态提供的 HTML 页面
- 和其他一些东西,但这是大部分
所有或大部分都包含各种版本信息,用于不同的目的。发布打包过程的一部分涉及进行大量查找、grep'ing 和 sed'ing(在脚本中)以更新信息。这种包装产品的胶水似乎是以一种有机的、及时的方式拼凑在一起的,而且维护起来非常糟糕。例如,一些 Java 方法在发布时创建 Date 对象,其参数通过文本替换更新,无需编译器验证......只是,呃。
我试图避免给出实际使用的软件(即 CVS、SVN、ant 等)的示例,因为我想避免“使用 xyz 的功能来做到这一点”并更多地关注一般实践。我想将问题归咎于劣质设计,但如果我不得不重新开始,仍然使用不同的技术,我不确定如何最好地处理这个问题,而不是制定约定。
我的问题是,对于跨不同技术、文件类型、平台和版本控制系统维护和更新版本信息,是否有任何最佳实践或提示和技巧?