2012-07-04 4 views
4

Моя команда разрабатывает веб-приложение Java, которое должно быть развернуто на Amazon Elastic Beanstalk. Среда разработки - Eclipse и Subversion. Они смогли развернуть его с помощью плагина Eclipse, но для автоматизации развертывания я экспериментирую с инструментами CLI, предоставляемыми Amazon.Развертывание веб-приложения Java на Amazon Elastic Beanstalk

В основном, я выполнил шаги, описанные в Amazon Blog post, после преобразования репозитория subversion в репозиторий git. Я выполнил следующие шаги: this SO answer

После выполнения вышеуказанных шагов я выпустил команду git aws.push, которая успешно завершена. Но во время запуска приложения возникают ошибки и. Поэтому я загрузил файл войны из среды Beanstalk и обнаружил, что структура папок перепутана, а исходные файлы не скомпилированы в файлы классов. Похоже, что исходные файлы загружаются как таковые.

Должен ли я создать приложение (используя муравей) до использования aws.push? Или я чего-то не хватает?

+0

Почему не directy развернуть архив войны с 'загрузки и deploy' на упругом бобовый стебель? – Sorter

+0

В то время мне нужна инкрементная функция развертывания, и с помощью aws.push действительно быстро – libregeek

+0

@DeepakMishra У вас есть дополнительная информация о том, как выполнить загрузку и развертывание военного файла через CLI? Мы строим наши военные файлы и хотим подталкивать их, вместо того, чтобы отталкивать от Git. – emilebaizel

ответ

-1

У меня была такая же проблема - похоже, метод git предназначен только для работы с PHP-приложениями.

В настоящее время я ищу другой инструмент на основе Java, поскольку я не использую Eclipse, а консоль AWS - неуклюжий способ управления релизами (и загрузки очень медленные).

+0

Другие вопросы не задаются в ответах, комментарии могут быть добавлены в clarfy/ask things. – Rndm

+0

-SNAPSHOT-сборки модуля maven-beanstalk-plugin включают экспериментальную поддержку для развертывания на основе git из проектов на основе maven – aldrinleal

6

Кажется, теперь у меня есть ответ на мой вопрос.

aws.push не только для приложений PHP, но также может использоваться для развертывания приложений Java и PHP. Я успешно использовал вместе с Apache Ant, и настройка отлично работает в нашей среде UAT.

я разработал скрипт, который делает следующее:

  1. Отъезд исходный код из репозитория Subversion
  2. сборки и создан файл WAR с помощью Apache Ant
  3. Explode файл WAR в хранилище мерзавца (инициализировано с использованием инструмента Amazon EB)
  4. Добавить взорванные файлы в репозиторий git и зафиксировать изменения.
  5. Используйте aws.push для развертывания файла войны в EB.

(у меня нет доступа к скрипт прямо сейчас, поэтому я не могу быть в состоянии предоставить подробные команды)

Вот Shell Script в основной форме

source_dir="/home/libregeek/myapp" 
workingcopy="$source_dir/trunk" 
gitrepo="$source_dir/gitrepo" 
cd $workingcopy 
svn update 
ant createwar 
cd $gitrepo 
unzip -o $workingcopy/build/myapp.war 
git add * 
git commit -m "Deployed new version" 
git aws.push 

Известная проблема с этим скриптом связана с устаревшими файлами классов. Чтобы избавиться от него, вам, возможно, придется очистить git repo.

Вот муравей цель:

<target name="createwar" depends="build" description="Create WAR file for deployment"> 
<war destfile="${alternate.path}/${name}.war" webxml="${web.dir}/WEB-INF/web.xml"> 
<fileset dir="${web.dir}"> 
<include name="**/*.*"/> 
</fileset> 
</war> 
</target> 
+0

Я бы проголосовал за ваш ответ, если вы поделились своим скриптом! Спасибо. –

+0

Когда вы это делаете, Elastic Beanstalk все еще собирает взорванную WAR, чтобы вы могли идти туда и обратно между версиями? –

+0

Да, вы можете переключаться между версиями. – libregeek

1

Это вы используете Maven и Beanstalker, эквивалентная функциональность мерзавца aws.push может быть возобновлено в одной команде, независимо, если вы используете Git или не.

$ mvn package beanstalk:fast-deploy

, но убедитесь, что ваш pom is ready

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