Запустите и настройте сервер WildFly и разверните приложение с помощью WildFly-maven-plugin в 1 Maven run

Я хочу иметь способ запустить maven, чтобы он:

  • запустите экземпляр сервера WildFly в автономном режиме (wildfly:run)
  • разверните драйвер hsqldb
  • добавить источник данных
  • развернуть приложение

проблема в том, что:

  • wildfly:run блоки, поэтому никакие другие цели maven не могут быть выполнены
  • экземпляр сервера должен работать, прежде чем он может быть настроен или приложение может развернуто (daaa)

возможная работа вокруг, которая приходит мне на ум:

  • wildfly:start
  • настройте сервер и разверните приложение
  • блок, пока пользователь не нажмет CTRL-C, есть ли плагин maven, который это делает?

3 ответов


вы можете использовать параметр beforeDeployment выполнить goal (источник):

<plugin>
    <groupId>org.wildfly.plugins</groupId>
    <artifactId>wildfly-maven-plugin</artifactId>
    <configuration>
        <beforeDeployment>
            <commands>
                <command>data-source add --jndi-name=java:jboss/datasources/OracleDS --name=testDB --connection-url=jdbc:h2:mem:test;DB_CLOSE_DELAY=-1 --driver-name=h2 --user-name=sa --password=sa</command>
            </commands>
        </beforeDeployment>
    </configuration>
</plugin>

Если вам нужны дополнительные библиотеки для вашего драйвер базы данных, вы можете сделать что-то подобное (источник):

module add --name=org.postgres --resources=/tmp/postgresql-9.3-1101.jdbc41.jar --dependencies=javax.api,javax.transaction.api
/subsystem=datasources/jdbc-driver=postgres:add(driver-name="postgres",driver-module-name="org.postgres",driver-class-name=org.postgresql.Driver)

на wildfly:start цель не будет блокировать, и у него есть крюк выключения, чтобы уничтожить процесс после выхода maven. Возможно, стоит добавить свойство конфигурации, чтобы не регистрировать крючок выключения и оставить процесс запущенным.. ..но я отклоняюсь от темы.

поскольку maven запускает цели на основе фазы жизненного цикла, вы можете вызвать start и deploy цель в фазе, которая проходит перед


Я не совсем понимаю, что такое ваш вариант использования или почему wildfly:start следовал по wildfly:deploy не хватает.

вы делаете ручное или автоматическое тестирование?

для интеграционного тестирования, если wildfly-maven-plugin не соответствует вашим потребностям, посмотрите на груз и его поддержка Maven и WildFly.