Капистрано для Java?
-
06-07-2019 - |
Вопрос
Я большой поклонник Capistrano, но мне нужно разработать сценарий автоматического развертывания для магазина только на Java. Я смотрел на Ant и Maven, и они, похоже, не слишком хорошо ориентированы на удаленное администрирование, как Capistrano - они, кажется, гораздо больше сосредоточены на простом создании и упаковке приложений. Есть ли лучший инструмент там?
Решение
Я не думаю, что есть приложение, похожее на Capistrano для веб-приложений Java, но это не должно мешать вам использовать его (или альтернативы, такие как Fabric) для развертывания ваших приложений. Как вы уже сказали, Ant больше заменяет GNU Make, а Maven - это в первую очередь приложение для управления компоновкой / зависимостями.
Поскольку веб-приложения Java благодаря контейнеру .war меньше зависят от внешних библиотек, вы можете (в зависимости от сервера приложений) развернуть приложение так же просто, как выполнить простой HTTP-запрос PUT. Р>
Но если вам требуются дополнительные действия, Fabric работает очень хорошо для меня до сих пор, и я предполагаю, что Capistrano также предлагает общие команды shell-команды, put и get. Так что я бы не стал долго искать альтернативу, если то, что у вас уже есть, работает: -)
Другие советы
Я думаю, что этот контроллер (см .: http://controltier.org ) - это то, что вы ищете. Хотя controltier не обязательно должен использоваться исключительно для развертывания Java. Р>
См. этот отрывок из документации (см. ). документация уровня управления ):
ControlTier - это то же самое, что Capistrano, Fabric или Func?
В своих наиболее фундаментальных понятиях ControlTier, Capistrano, Fabric и Func - похожие инструменты. Мы бы Обязательно позвоните Capistrano, Fabric, и Func Basic Диспетчеризация команд Каркасы.
Тем не менее, ControlTier, по дизайн, выходит далеко за рамки того, что эти другие инструменты предоставляют. Автоматизация библиотеки и веб-инструменты, которые ControlTier предоставляет разработанные для позволяют создавать полноценные системы автоматизации готов к использованию предприятием или крупные команды веб-операций. Есть также такие функции, как обработка ошибок и централизованное ведение журнала которые просто не входят в сферу других инструменты диспетчеризации команд.
Кроме того, Capistrano - это инструмент на основе Ruby. что в первую очередь ориентировано на потребности сообщества Ruby on Rails. ControlTier, хотя и написан на Java, не требует от вас знания Java используй это. На самом деле, вы можете использовать все, что угодно скриптовые языки вы комфортно (включая рубин). ControlTier пытается быть языком и платформа (Linux, Unix, Windows, и т. д.) как можно более нейтральным.
На моей работе мы используем Capistrano исключительно для развертывания всех наших Java-приложений. Это определенно возможно.
Я использую рецепт capistrano для создания dspace (Java-приложение, которое в свою очередь использует maven) из источника: Установка dspace с использованием capistrano
Capistrano может развернуть все основные веб-приложения. Развертывания для разных языков практически одинаковы:
<Ол>в моей компании мы используем Capistrano для развертывания приложений java, Vuejs, php, ruby, python. Р>
Что интересно, идея Capistrano о репо предполагает, что вы имеете дело с SCM (Source Control Manager). Структура на сервере и связанная с ним версия приложения работают с источником приложения. Это имеет смысл для интерпретируемого языка.
В скомпилированном языке, таком как Java, управление версиями и ветвление происходит еще до развертывания, и к тому времени, когда приложение скомпилировано и собрано, система управления исходным кодом уже забыта, и в результате получится версионный файл jar или tar приложение. Обычно этот архив (jar + config) публикуется в хранилище артефактов Maven, например, в Nexus или Artifactory.
Удивительно, но этот репозиторий артефактов отлично подходит к репозиторию Capistrano. Вместо SCM мы можем рассматривать этот тарбол как SCM (источник для версии). Учитывая это, я реализовал плагин Capistrano SCM для репозиториев артефактов Maven . Это новое, но работает довольно хорошо.
Он объединяет наши проекты Ruby и Java в одном инструменте, и, что наиболее важно, он привносит мощь SSHKit Capistrano и повышает эффективность наших проектов Java.