Status Quo
Для нашего клиента мы разрабатываем некоторые библиотеки и приложения, которые запускаются как «модули» в более крупном приложении, которое поставляется как внутреннее приложение Java Web Start.Заказчик поддерживает инфраструктуру, на которой запущено это приложение.«Серверная часть» состоит из нескольких веб-сервисов, основанных на Axis2.Обе части развертываются в одном экземпляре Tomcat в виде двух отдельных веб-приложений.
Когда мы выпускаем новые версии наших артефактов, мы просто создаем необходимые файлы JAR (например, ourapp-client.jar и ourapp-server).jar) и отправьте их нашему клиенту, который, в свою очередь, просто уронит их в соответствующие места и - при необходимости - перезапустит сервер Tomcat.
Goals
В настоящее время мы занимаемся Maven-izingвсе наши проекты и в будущем мы также хотим делать наши релизы "Maven way".Основная цель состоит в том, чтобы автоматизировать процесс выпуска и развертывания на нашей стороне и сделать его менее подверженным ошибкам и более надежным и удобным на стороне клиента.
Основная проблема
Хитрость заключается в том, что нашазаказчик использует те же веб-приложения Tomcat (Axis2 для «серверной части» и приложение Web Start) для включения в приложение своих собственных модулей.Поэтому мы не можем использовать очевидное решение и просто предоставить новое веб-приложение (WAR), которое просто развертывается на сервере.Вот почему в настоящее время мы доставляем отдельные JAR-файлы, которые «вручную» помещаются в нужное место.
Какие стратегии вы обычно используете для доставки ваших продуктов покупателю?Кто-нибудь сталкивался с подобной ситуацией (т. Е. Совместно используемой средой выполнения для сторонних и самостоятельно разработанных приложений)?