Каковы лучшие методы для развертывания Java-кода в производстве? - PullRequest
1 голос
/ 11 января 2011

В настоящее время у нас есть API Java Restlet с зависимостями, контролируемыми через Maven. Когда мы обновляем API, мы запускаем maven assembly: assembly, которая выполняет модульные тесты и т. Д. И создает один файл jar. Затем мы загружаем это на рабочий сервер и запускаем его с помощью nohup.

Есть ли лучший или более автоматизированный способ сделать это? Это где-то вроде Хадсона?

Спасибо

Ответы [ 4 ]

1 голос
/ 11 января 2011

Мой опыт работы с webapp-развертыванием.Но то же самое должно быть верно здесь.Используйте Maven , Cargo , Nexus (или Artifactory ), Hudson и, вероятно, Jira в связи с выпуском продукта.

Процесс автоматического выпуска более надежен , потому что нет человеческого фактора, который может забыть шаг.

Мы также используем Liquibase для управления версиями базы данных.И, если вы имеете дело с изменениями базы данных при развертывании вашего приложения.Вы поймете, что Liquibase повышает уверенность при выполнении сценариев alter.

Я бы посоветовал просмотреть следующие ресурсы:

1 голос
/ 11 января 2011

Существует несколько плагинов Maven, которые помогают в развертывании.Наиболее общий из них - Cargo , но есть также специальные плагины для серверов приложений для некоторых конкретных серверов, таких как JBoss .

0 голосов
/ 11 января 2011

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

Однако по мере роста вашего приложения вам может понадобиться сервер приложений, такой как Jetty, JBoss, Glassfish, Tomcat и т. Д. Когда это произойдет, взгляните на плагин Cargo для Maven, поскольку он позволит вам выполнить что-то вроде:

mvn cargo:redeploy

Это упакует ваше приложение, отправит его на сервер и перезапустит приложение.Если вы хотите, чтобы Hudson сделал это для вас автоматически, вы можете добавить его в качестве цели для сборки.

Cargo может сэкономить вам много времени, когда вам придется часто обновлять сервер приложений.

0 голосов
/ 11 января 2011

Большинство компаний, в которых я работал (фактически, все), имели какую-то собственную встроенную систему развертывания;даже если сборка была сделана с использованием стандартного фреймворка (например, Maven используется в моей нынешней компании).Частично это связано с тем, что существует множество аспектов, тесно связанных с конкретной инфраструктурой компании, системами управления мощностью и мониторинга;и поэтому, несмотря на то, что существуют системы с открытым исходным кодом, обычно есть что-то, что нужно настроить.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...