Реализация установщика, основанного на maven
-
18-09-2019 - |
Вопрос
Нечто подобное было задано в список пользователей maven но у меня ситуация, похожая на эту.
У меня есть некоторый сервис, упакованный как .WAR, который создается maven.Однако этот .Файл WAR требует настройки:Мне нужно упаковать его по-разному, в зависимости от пользовательского ввода.По сути, пользователь должен сам выбрать компоненты, которые он хотел бы добавить в WAR, и определить некоторую простую конфигурацию для этих компонентов.
Что мне нужно сделать, это:
- Создайте "легкий" установщик, который не будет содержать никаких maven артефакты (или, если это невозможно, содержать их все = "тяжелый" установщик).
- Когда конечный пользователь запускает установщик, у него запрашивается список компонентов для упаковки (= флажки)
- Для каждого компонента установщик запрашивает параметры конфигурации (которые затем должны быть сохранены в виде файлов .property, по одному на компонент) .
- Затем установщик извлекает только необходимые артефакты (выбранные пользователем + обязательные) и заменяет файлы свойств в этих артефактах файлами из шага 3 (или помещает их в "классы /").
- Наконец, он создает готовый к использованию пакет WAR и (необязательно) запускает tomcat (или jetty) в фоновом режиме.
IzPack помогает решить только шаг 2.Но есть ли какое-то универсальное решение для этого?
Решение
Я не знаю ни одного универсального решения для этого, особенно такого, которое позволит упаковка заказная ВОЙНА.Изпак может соберите параметры установки (и, возможно, помогите решить шаг 3), IzPack имеет расширенная функция, называемая Веб-установщики это могло бы помочь решить шаг 4, но, насколько мне известно, это не инструмент для сборки / упаковки, поэтому он не будет охватывать шаг 5 (самый важный).
Возможно, здесь мог бы помочь архетип maven (в интерактивном режиме).Но я даже не уверен, что архетип обеспечит вам необходимый уровень гибкости.Другими словами, это будет непросто.
На самом деле, в вашем случае, я думаю, что Ant (с Задачи Maven Ant или Плющ) было бы лучшим вариантом.Я знаю, что это не то, о чем вы просили, но я не думаю, что Maven - подходящий инструмент для вашего варианта использования.