Статьи

Непрерывная интеграция Java EE на платформе Maven & Glassfish

Можете ли вы скомпилировать, развернуть и протестировать свои проекты Java EE с помощью всего одной командной строки? Проверьте это.

В последнее время у меня нет времени на документацию, но я предпочитаю дать вам возможность досрочно принять мой сценарий сборки и сделать собственные выводы. Следуя приведенным ниже инструкциям, на вашем сервере Glassfish v2.1 будет запущено мое приложение Java EE 5, включая тестовые данные, заполненные базой данных MySql.

Что делает скрипт:

  1. Скомпилируйте, проведите модульные тесты и запакуйте проект Arena-PUJ .
  2. Разверните веб-сервис RESTful. (* .Ear)
  3. Заполните MySql тестовыми данными.
  4. Выполнить интеграционные тесты
  5. Разверните веб-приложение DWR (* .war)

Магия делается с помощью набора из ASADMIN GlassFish в командах , работающих на Shell Script и Maven плагин AntRun . Вы можете проверить проект со всеми артефактами и спросить меня, есть ли у вас какие-либо предложения или сомнения. Повеселись ?

Важно : текущая версия скрипта работает только на UNIX-подобных машинах, потому что она использует сценарии оболочки. Я создал и проверил скрипт на ОС Ubuntu и у меня не было

ставки процента
времени , чтобы перевести его для сценария DOS (* .bat). Так что, если вы используете Windows, извините, но чтение вашего блога заканчивается здесь. Если вы являетесь пользователем Windows и хотели бы добавить файл BAT, отправьте его мне, и вы получите соответствующие кредиты — это может быть хорошим вкладом в мой любимый проект
.

Настроить

Нет, вы не можете пропустить эти неприятные шаги, но, по крайней мере, вам нужно сделать это только один раз.

Проверьте, есть ли у вас все необходимое программное обеспечение:

  1. Java 6.x
  2. Maven 2.x
  3. MySql 5.x
  4. ртутный
  5. Glassfish v2.1 * те, кто живет в будущем, могут попробовать последнюю версию v3 b66, и, пожалуйста, внесите свой вклад в FishCat, если найдете ошибку.

После установки запустите базу данных и сервер приложений. Откройте терминал и введите:

	sudo service mysql start
asadmin start-server

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

Создание файла паролей и базы данных арены

Из-за переносимости и из соображений безопасности я не мог ввести пароль непосредственно в сценарии, поэтому я позволил пользователям использовать свои локальные пароли. По этой причине у вас есть еще один скучный шаг: создать файл паролей и сохранить его как ~ / .passwords, содержащий следующие значения свойств:

	AS_ADMIN_MASTERPASSWORD=glassfish_password
	AS_ADMIN_USERPASSWORD=glassfish_password
	AS_ADMIN_ALIASPASSWORD=glassfish_password
	MYSQL_USER=mysql_user
	MYSQL_PASSWORD=mysql_user_password
	ASADMIN_USER=glassfish_password
	DB_URL=jdbc\\:mysql\\://localhost\\:3306/arena
	MAIL_HOST=smtp.gmail.com
	MAIL_USER=mailuser
	[email protected]
	[email protected]
	MAIL_SMTP_PORT=465
	MAIL_SMTP_PASSWORD=guesswhat

Известные ограничения: текущий код Java Arena-PUJ работает только для защищенных SMTP-серверов IMAP. Я планирую пересмотреть код, чтобы сделать его более универсальным, но пока он гарантированно работает только с SMTP-подобным GMail-сервером. Я не смог найти элегантный способ использования плагина AntRun с Shell Script, поэтому я жестко закодировал ~ / .passwords в скрипте. Несмотря на это, если вы вызываете его с помощью строковой команды, вы можете передать аргумент с именем файла паролей — я просто не мог заставить его работать плавно с плагином Maven :(. Проект должен работать с другими базами данных, так как я Я не использую какой-либо специфический трюк MySql в модели предметной области — но я никогда не пробовал, и я не могу гарантировать, будет ли он действительно переносимым для других БД. Вам нужно как минимум обновить дескрипторы развертывания, если вы планируете протестировать его на другой Java EE Серверы и постоянство.XML, если вы будете использовать другую базу данных — и, пожалуйста, скажите мне, если вы хотите попробовать, я очень заинтересован в результатах.

Сборка и развертывание

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

Обновлено : пожалуйста, ознакомьтесь с новыми инструкциями здесь .

Теперь вы принимаете кофе, смотрите на экран и улыбаетесь — пришло время понять, почему Glassfish — мой предпочтительный сервер приложений ?

Успешная сборка? просто зайдите на http: // localhost: 8080 / arena-dwr /

Интеграция с Гудзоном

Представленная здесь встроенная система представляет собой чистый сценарий Maven, поэтому создание задания Hudson для запуска сценария является несложным делом. Вы можете увидеть здесь историю сборки Arena-PUJ.

Резюме

Если вы знаете меня, вы знаете, как я ненавижу шаги ручной настройки и другие ловушки, которые навязывают нам большие коммерческие проекты. Сделать мой собственный маленький проект чистым и легким — это минимум, которого требует мое стройное эго, чтобы продолжать со мной, но у меня есть всего несколько свободных часов в неделю, чтобы поднять этот любимый проект на более высокий уровень, поэтому я ценю любые улучшения и предложения, которые вы можете внести. мне. Это новый проект, и я уверен, что в ближайшем будущем он станет намного лучше. Все команды в скрипте сборки можно выполнить через Консоль администрирования Glassfish — на самом деле она не содержит магических секретов.

Подтверждение

Этот прекрасный кусок конфигурации был улучшен благодаря советам и обсуждениям в бразильском сообществе Java и всегда благодаря дружеской поддержке команды Glassfish. Я хочу поблагодарить вас всех и за особую благодарность Марсио Коррейе из CEJUG.

От http://weblogs.java.net/blog/felipegaucho