现状
对于我们的客户,我们正在开发一些库和应用程序,它们在作为内部 Java Web Start 应用程序交付的更大应用程序中作为“模块”运行。客户维护运行此应用程序的基础架构。“服务器端”由一些基于 Axis2 的 Web 服务组成。这两个部分都作为两个单独的 Web 应用程序部署到单个 Tomcat 实例。
当我们发布新版本的工件时,我们只需生成必要的 JAR 文件(例如 ourapp-client.jar 和 ourapp-server.jar)并将它们发送给我们的客户,然后他们将它们放到适当的位置,然后——如果需要,重新启动 Tomcat 服务器。
目标
我们目前正在对我们所有的项目进行 Maven 化,未来我们还希望以“Maven 方式”进行发布。主要目标是自动化我们方面的发布和部署过程,并使其更不容易出错,在客户端更可靠和舒适。
主要问题
棘手的部分是我们的客户使用相同的 Tomcat Web 应用程序(Axis2 用于“服务器端”和 Web Start 应用程序)将他们自己开发的模块包含到应用程序中。因此,我们不能使用显而易见的解决方案,而只是交付一个简单地部署到服务器中的全新 Web 应用程序 (WAR)。这就是为什么我们目前正在交付“手动”放置到正确位置的单个 JAR 文件。
您通常使用哪些策略将产品交付给客户?有人有过类似情况的经历吗(例如,第三方和自行开发的应用程序的共享运行时环境)?