2010-05-22 3 views
7

Я работаю над веб-проектом Java, который использует Maven для создания своих артефактов. В конце сборки Maven у нас есть несколько файлов jar и war, которые нам нужно развернуть в нашей среде разработки/тестирования.Что вы использовали бы для сценариев развертывания в Java?

Сейчас мы используем довольно здоровенный Ant скрипт, который выполняет несколько задач (на обеих машинах Windows/Linux)

  • включение/выключение услуги
  • Копии/удаление файлов
  • Строит некоторые вещи и затем выполняет его
  • Etc

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

Есть ли другие альтернативы? Я слышал о gant, но я не уверен, что это правильный путь.

Спасибо за помощь!

EDIT: после дополнительных исследований я узнал о Gradle - это похоже на очень хорошее сочетание повторного использования задач муравьев и позволяет запускать реальные скрипты. Это стоит прочитать.

+0

ive столкнулся с той же проблемой, на работе (linux env), мы используем небольшие Java-программы для выполнения сценариев развертывания и monit для запуска и остановки служб, связанных в сценарии оболочки. все еще грязный, хотя и действительно не решает вашу проблему в окнах ... – Dimitar

ответ

4

Да, посмотри на Cargo плагин для Maven:

* Deploying to a running container 
* Generating a container configuration deployment structure 
* Merging WAR files 
* Starting and stopping a container 

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

+0

Да, это хорошее направление. Но мне все еще не хватает частей copy/scp/sshexec, которые я получаю с Ant ... – Nadav

+0

все сделано по-другому - через открытые сервисы сервером. Например, у Tomcat есть приложение-менеджер, и Хадсон использует его. Я не понимаю, как груз выполняет свою работу. – Bozho

0

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

3

Развертывание в целом нелегко (и часто очень специфично), и хотя Cargo maven plugin может помочь в удаленном развертывании войны/уха (если удаленное развертывание для вашего сервера приложений реализовано), я не думаю, что оно будет охватывать все ваши потребности. На самом деле, трудно быть очень точным, поскольку вопрос нечеткий, поэтому я просто дам несколько указателей. Взгляните на такие решения, как:

0

Это, кажется, открытым вопросом в 2017 году, тоже. Поиск «скрипта java deploy» указывает сначала на этот вопрос, а также на Ant и несколько других несвязанных статей.

Проект, над которым я работаю на момент написания этой статьи, имеет 6-7 файлов JAR, которые мы размещаем в папке lib/folder tomcat, и 20-30 небольших файлов WAR, которые мы размещаем в webapps /. У нас есть сценарий развертывания, который загружается с сервера Bamboo и расширяет архив, содержащий все, но это не применимо во время разработки. И развертывание всего этого вручную - это кошмар.

Итак, я начал свой собственный скрипт Python, который первоначально развернул несколько JAR и WARS для экземпляра tomcat.

Теперь это инструмент для межплатформенного развертывания (протестирован на Windows и Mac), а также язык и сервер агностик, настраиваемый через файл JSON. Он может:

  • Копирование и удаление ЛИЭС и приложения

  • Запуск локального и удаленного (через SSH) команды

  • Сделать паузу

Поскольку вы можете запускать команды на удаленном сервере вы можете делать много всего через команды Shell (мы используем их для запуска/остановки tomcat, дождитесь его запуска/остановки, удаления журналов и т. д.), ,

Сценарий развертывания находится на GitHub.

Смежные вопросы