Я большой поклонник Capistrano, но мне нужно разработать сценарий автоматического развертывания для магазина, предназначенного только для Java. Я посмотрел на Ant и Maven, и они, похоже, не очень хорошо приспособлены к удаленному администрированию, как Capistrano - они, кажется, гораздо больше ориентированы на простую сборку и упаковку приложений. Есть ли лучший инструмент?




Я не думаю, что существует приложение типа Capistrano для веб-приложений Java, но это не должно мешать вам использовать его (или альтернативы, такие как Fabric) для развертывания ваших приложений. Как вы уже сказали, Ant - это скорее замена GNU Make, в то время как Maven является основным приложением для построения / управления зависимостями.
Поскольку веб-приложения Java благодаря контейнеру .war менее зависимы от внешних библиотек, вы можете (в зависимости от сервера приложений) сделать развертывание приложения таким же простым, как выполнение простого HTTP-запроса PUT.
Но если вам требуются дополнительные шаги, Ткань до сих пор работал у меня очень хорошо, и я предполагаю, что Capistrano также предлагает общие команды оболочки, операции ввода и получения. Так что я бы не стал долго искать альтернативу, если то, что у вас уже есть, работает :-)
В моей работе мы используем Capistrano исключительно для развертывания всех наших Java-приложений. Это определенно возможно.
Как ... вы можете направить меня к войне последнего релиза>
Я использую рецепт capistrano для создания dspace (java webapp, который, в свою очередь, использует maven) из источника: Установка dspace с помощью capistrano
Я думаю, что controltier (см .: http://controltier.org) - это то, что вы ищете. Хотя controltier не обязательно использовать исключительно для развертывания Java.
См. Этот отрывок из документации (см .: документация уровня управления):
Is ControlTier the same as Capistrano, Fabric, or Func?
In their most fundamental concepts, ControlTier, Capistrano, Fabric, and Func are similar tools. We'd definitely call Capistrano, Fabric, and Func basic Command Dispatching Frameworks.
However, ControlTier, by design, goes far beyond what these other tools provide. The automation libraries and the web-based tools that ControlTier provides are designed to let you build full automation systems ready for use by enterprise or large-scale web operations teams. There are also features like error-handling and centralized logging that just aren't in the scope of other command dispatching tools.
Also, Capistrano is a Ruby-based tool that is primarily focused on the needs of the Ruby on Rails community. ControlTier, while written in Java, doesn't require you to know Java to use it. In fact, you can use whatever scripting languages you are comfortable with (including ruby). ControlTier attempts to be as language and platform (Linux, Unix, Windows, etc..) neutral as possible.
ControlTier больше не поддерживается Rundeck.org
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 в одном инструменте и, что наиболее важно, привносит мощь Capistrano SSHKit и грабли в наши проекты Java.
Для записи: прочитав этот пост еще в 2014 году, я провел тестовую реализацию Fabric для конкретной задачи в нашем процессе развертывания. Все прошло очень хорошо, и теперь мы используем Fabric более или менее на всех этапах развертывания. Мы развертываем несколько серверных приложений Java на различных серверах.