Что такое Jelastic Cloud? это облачный java-хостинг, а с некоторых пор и php-хостинг, который поддерживает такие сервера приложений как Tomcat 6/7, Jetty 6, Glassfish 3, среду выполнения Java 6/7, а так же БД MariaDB 5.5, MySQL 5.5, PostgreSQL 8.4, MongoDB 2.0 и CouchDB 1.2 (версии указаны на момент публикации поста). Более подробно можно узнать у них на сайте.
Мы же поговорим про создание и загрузку java web-приложения в cloud-окружение посредством maven-плагина от Jelastic.
В первой части мы создадим окружение в облаке и создадим простой web-проект, который и установим в окружение.
шаг 1. Создадим cloud-окружение.
Для этого потребуется создать, если у вас её ещё нет, учетную запись и перейти в «Панель администрирования» у своего провайдера (Jelastic Cloud располагается у разных провайдеров).
Я выбрал tomcat 6 и java 6. Использовать окружение будет от одного до трёх клаудлетов. так же, на картинке я подчеркнул имя окружения (env-6560883
) — на него мы будет в последующем устанавливать web-приложение, а так же, по нему мы будем открывать его в браузере (http://env-6560883.j.rsnx.ru/
)
шаг 2. Создадим простое web-приложение используя Maven.
После того, как Maven закончит создавать базовую структуру прокта, откроем файл /src/main/webapp/WEB-INF/web.xml
и заменим в нём содержимое полностью на наше, тем самым, указывая, что мы будем использовать servlet API 2.5 вместо 2.3.
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="http://java.sun.com/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
version="2.5">
<welcome-file-list>
<welcome-file>index.jsp</welcome-file>
</welcome-file-list>
</web-app>
Что же, мы закончили создавать наше самое простое web-приложение и теперь самое время приступить к настройки проекта для его установки через Maven на Jelastic Cloud.
Вы можете спросить, чем меня не устраивает пример от самого Jelastic? ну, хотя бы тем, что там требуется делать 2 шага (собрать, установить) вместо одного (собрать и установить).
Приступим.
Для начала, в соответствии с официальной документацией, добавим в ~/.m2/settings.xml
следующий блок:
<?xml version="1.0" encoding="UTF-8"?>
<settings xmlns="http://maven.apache.org/SETTINGS/1.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.0.0 http://maven.apache.org/xsd/settings-1.0.0.xsd">
<profiles>
<profile>
<id>jelastic</id>
<s> <activation>
<activeByDefault>true</activeByDefault>
</activation></s>
<properties>
<jelastic.username>[insert your Jelastic user name]</jelastic.username>
<jelastic.password>[insert your Jelastic password]</jelastic.password>
</properties>
</profile>
</profiles>
</settings>
отличие составило только в том, что я удалил включение профиля по-умолчанию (секция activation) — мне удобнее явно включать нужные профили для конкретного проекта.
теперь, так же, согласно официальной документации, добавим в pom.xml проекта репозитарий для jelastic-плагина:
<pluginRepositories>
<pluginRepository>
<id>sonatype-oss-public</id>
<url>https://oss.sonatype.org/content/groups/public</url>
<releases>
<enabled>true</enabled>
</releases>
<snapshots>
<enabled>true</enabled>
</snapshots>
</pluginRepository>
</pluginRepositories>
На этом наше соответствие официальной документацией Jelastic заканчивается и переходим к «магии».
добавил в pom.xml новый профиль с id, соответствующим id jelastic-профиля в settings.xml:
<profiles>
<profile>
<id>jelastic</id>
<build>
<plugins>
<plugin>
<groupId>com.jelastic</groupId>
<artifactId>jelastic-maven-plugin</artifactId>
<version>1.7-SNAPSHOT</version>
<configuration>
<api_hoster><span style="color: red;"><b>app.j.rsnx.ru</b></span></api_hoster>
<context>ROOT</context>
<email>${jelastic.username}</email>
<environment><span style="color: red;"><b>env-6560883</b></span></environment>
<password>${jelastic.password}</password>
</configuration>
<executions>
<execution>
<phase>install</phase>
<goals>
<goal>deploy</goal>
</goals>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-install-plugin</artifactId>
<version>2.4</version>
<executions>
<execution>
<phase>none</phase>
</execution>
</executions>
</plugin>
</plugins>
</build>
</profile>
</profiles>
Здесь мы сделали следующее:
1) отключили для данного профиля выполнение плагина maven-install-plugin
, который производит установку нашего артефакта в локальный репозитарий Maven
2) Добавили maven-плагин jelastic с указанием cloud-окружения, данных для аутентификации и контекст для нашего web-приложения (если вам потребуется не корень домена, то вместо ROOT
напишите ваш путь, например "/myapp
")
3) для maven-плагина jelastic указали, что он выполняется автоматически на шаге "install
"
Всё — теперь мы готовы собрать и установить наше web-приложение на Jelastic Cloud.
включаем профиль "jelastic
" и указываем maven произвести установку, указав этап "install
"
Смотрим, что установка прошла успешно:
На этом наша первая часть закончена — мы успешно выполнили deploy нашего web-приложения в окружение Jelastic Cloud.
PS: на текущий момент при использовании maven-плагина jelastic наблюдается проблема с созданием дубликатов war-файлов в диспетчере дистрибутивов — приходится заходить в панель администрирования и удалять вручную дубликаты.
Автор: Borz