如何在客户端升级/更新web java项目?

时间:2010-07-16 09:03:48

标签: java upgrade

假设我们正在开发一个新的客户端/服务器Java Web应用程序。我们最终发布了1.0版本并卖给了少数客户。客户在自己的服务器上部署了我们的项目。一段时间后,我们发现了一些错误,我们想更新我们的应用程序
是否有任何框架/技术/模式/库/服务器可以帮助开发可以自动更新的应用程序,包括以下步骤:

  • 复制新项目发布
  • 取消使用旧版本
  • 部署新版本
  • 更新数据库

目前我们已向客户提供vpn,我们正在手动执行上述所有步骤。 是否可以将我们的客户版本与我们的存储库同步?

3 个答案:

答案 0 :(得分:1)

您正在谈论的技术是安装人员。并且存在应用程序安装程序框架。

但是,当应用程序将重要状态存储在数据库中或其他任何情况时,自动迁移数据是棘手且有风险的......并且在通用安装程序产品的上下文中几乎无法做到。如果您的应用程序可以由您的客户自定义,情况也是如此。 (自定义化总是有可能破坏您的自动迁移代码。)

现在,如果您当前手动执行的步骤很简单,并且不需要针对不同的客户站点进行调整,则可以实现自动化。但是,您需要确保有一个防弹机制来备份客户当前的安装和数据,并在必要时自动升级过程失败时进行恢复。

答案 1 :(得分:1)

对于数据库部分,您可以使用liquibase。 Liquibase是一个管理数据库迁移的maven插件/ lib(将数据库升级到更新的版本)。使用liquibase执行此操作的一种方法是部署一个特殊的servlet,该servlet将查询包含当前db版本的 schema-table

如果您可以执行远程部署(例如:通过tomcat管理界面或任何其他界面),您始终可以设置一个自定义脚本来执行部署。然后,您可以将此脚本提供给客户端,以便他们可以按照自己的计划应用更新。

我不建议立即在客户可用时推出更新,因为他们(和您)可能不想立即更新它们。

答案 2 :(得分:0)

JavaWebstart可以帮助部署客户端,但如果数据库也需要升级,我认为除非所有客户端都关闭,否则无法安全地完成。

相关问题