Я ищу инструмент для запуска процессов java-сервера в качестве сервисов-демонов в Linux (и, возможно, в Windows и других ОС). Я ищу лучшие практики, когда речь идет о том, как создавать производственные сценарии и запускать конфигурацию.
Я знаком с лучшими практиками, когда дело доходит до сборки проекта, используя Apache Maven или что-то вроде Apache ANT + Ivy для управления процессом сборки и управления внешними зависимостями. и собирать артефакты и сборки.
Когда дело доходит до создания сборки проекта, содержащей скрипты конфигурации и запуска, а также весь скомпилированный код и зависимости, мне неясно, какой из них лучший. Есть ли хороший проект с открытым исходным кодом, который я мог бы рассмотреть в качестве примера, который связывает оболочку службы и сценарии конфигурации с их процессом сборки?
Мне удалось использовать Maven с плагином Jetty Launch для запуска моих веб-приложений, Плагин Terracotta Maven для тестирования нескольких узлов кластерного сервера JVM, и я использовал Maven's exec: java для запуска моих пользовательских серверов Java, но я не уверен, что использование Maven в этом качестве действительно «производственного» качества, а также означает, что мои производственные серверы зависят от построения серверов из источника и загрузки зависимостей с потенциально недоступных серверов.
Вот некоторые потенциальные вещи, которые я ищу в решении для запуска служб Java:
- Должен работать как служба Linux или процесс службы Windows
- Может быть построен с использованием плагина Maven или скрипта Ant и позволяет мне обрабатывать файлы конфигурации и скрипты
- Должен быть в состоянии включить все зависимости моего проекта от Apache Ant
- Должен иметь возможность подключиться к полноценному серверу веб-приложений Java (например, Jetty 7) и быть настроен на войну моего пользовательского веб-приложения
- Должен иметь возможность обрабатывать стандартную службу Java-демона (пользовательский сервер Java)
Вот некоторые варианты, которые я просматривал: Java Service Wrapper , который используется в плагине Maven appassembler .
Также использование подключаемого модуля для Maven и пользовательских дескрипторов сборки позволяет адаптировать вывод сборки.