- PVSM.RU - https://www.pvsm.ru -
Привет! Начать хочу с небольшой статьи мануала, как подружить WildFly с Maven.
Wildfly – Это ребрендинг и развитие JBoss AS7/EAP6 в области как администрирования, так и API для разработчика. Wildfly построен с использованием Java SE 7. Отлично интегрируется с основными Java IDE. Краткая цитата из статьи [1]
Хочу рассказать об автоматическом деплое в Wildfly с помощью Maven, а так же рассказать кратко о запускe UI в том же самом контейнере.
Необходимо использовать Maven версии не ниже 3.3.9( использую maven 3.5.0 ), иначе Wildfly Plugin не будет работать.
Версия Wildfly, который на данный момент использую — 10.1.0-Final, версия плагина — 1.2.0.Alpha4
В Pom.XML собираемого приложения необходимо прописать данные для подключения к серверу Wildfly
Пример:
<plugin>
<groupId>org.wildfly.plugins</groupId>
<artifactId>wildfly-maven-plugin</artifactId>
<configuration>
<hostname>${wildfly-hostname}</hostname>
<port>${wildfly-port}</port>
<username>${wildfly-username}</username>
<password>${wildfly-password}</password>
<name>${wildfly-name}</name>
</configuration>
</plugin>
Так же хорошей практикой может быть вынос настроек в settings.xml либо в pom.xml уровнем выше. Это позволит так же использовать профили при деплое – локальный деплой, деплой на прод.
Область профилей в settings.xml.
<profile>
<id>localhost</id>
<properties>
<wildfly-hostname>localhost</wildfly-hostname>
<wildfly-port>9990</wildfly-port>
<wildfly-username>admin</wildfly-username>
<wildfly-password>admin</wildfly-password>
<wildfly-name>core.war</wildfly-name>
</properties>
</profile>
<profile>
<id>dev</id>
<properties>
<wildfly-hostname>Prod_Server</wildfly-hostname>
<wildfly-port>9990</wildfly-port>
<wildfly-username>admin</wildfly-username>
<wildfly-password>admin</wildfly-password>
<wildfly-name>core-prod_vers.war</wildfly-name>
</properties>
</profile>
После всех настроек, с помощью maven, из командной строки, из IDE, из, например, Jenkins (maven plugin), можно будет деплоить war c помощью mvn wildfly:deploy, так же можно использовать mvn wildfly:undeploy и mvn wildfly:redeploy для удаления и передеплоя соответственно. Выбор профиля -Plocalhost позволит запускать с настройками из профиля с id localhost, -Pdev соответственно запускает для прода( все данные в настройках дефолтны или вымышлены).
При верной настройке в WildFly консоле в разделе deployments у Вас появится необходимый war.
Кроме этого, WildFly позволяет запускать UI.
Настройка WildFly для запуска UI:
Проект помещать в корень WildFLy в директорию, которую Вы сами выберете для Вашего UI.
В данном примере я использовал директорию UI.
В файле /PathToWildfly/standalone/configuration/standalone.xml необходимо добавить строки(строки с учетом соседних строк, для облегчения поиска):
<location name="/" handler="welcome-content"/>
<location name="/UI/" handler="UI"/>
<filter-ref name="server-header"/>
<filter-ref name="x-powered-by-header"/>
<handlers>
<file name="welcome-content" path="${jboss.home.dir}/welcome-content"/>
<file name="UI" path="${jboss.home.dir}/UI/widget/build"/>
После этого WildFLy автоматически подхватывает изменения и по адресу localhost:8080/UI будет доступно ваше приложение.
На данный момент запуск был осуществлен с помощью команды ./standalone.sh -b=0.0.0.0 -bmanagement=0.0.0.0, приложение работает на Linux Oracle в screen.
За время использования были выявлены 2 проблемы:
Данная связка около 2 месяцев, кроме вышеописанных, проблем не встречал. Всем рулит Jenkins в данном случае, он стартует и mvn wildfly:undeploy mvn wildfly:deploy ( использую такую стратегию, т.к. redeploy не отрабатывает) и доставляет собранный UI в директорию UI, обновление происходит по ночам, полёт нормальный.
Так же тестировал запуск на win хосте, отличий не заметил в работе, все так же стабильно.
Автор: SicYar
Источник [2]
Сайт-источник PVSM.RU: https://www.pvsm.ru
Путь до страницы источника: https://www.pvsm.ru/maven/259349
Ссылки в тексте:
[1] статьи: https://habrahabr.ru/company/infobox/blog/210536/
[2] Источник: https://habrahabr.ru/post/332086/?utm_source=habrahabr&utm_medium=rss&utm_campaign=sandbox
Нажмите здесь для печати.