2014-09-13 3 views
8

Я хочу, чтобы иметь возможность запустить Maven так, что он будет:Запуск и настройка сервера WildFly и развернуть приложение с помощью wildfly-Maven-плагин в 1 Maven запустить

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

к веро Лем является то, что:

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

можно обойти, что приходит на ум:

  • wildfly:start
  • Сконфигурируйте серв er и развернуть приложение
  • заблокировать пока пользователь не нажмет CTRL-C, есть ли там плагин maven?
+1

У меня такая же проблема. mvn wildfly: запуск не блокируется. Вы могли придумать решение? – fansonly

+1

@fansonly Нет, я придумал некоторое обходное решение, которое я сейчас не помню, но не окончательное решение. Если у вас есть время, я призываю вас предоставить новую функцию (https: // github.com/wildfly/wildfly-maven-plugin), о котором Джеймс упомянул в своем ответе, - свойство конфигурации, чтобы не зарегистрировать крюк остановки и оставить процесс запущен. –

+0

Я буду смотреть на это, если менеджер проекта даст мне время. – fansonly

ответ

4

Вы можете использовать параметр beforeDeployment вводного goal (source):

<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> 

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

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) 
1

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

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

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

+0

, потому что 'wilfdly: start' не блокируется, поэтому после завершения' wildfly: start' и 'wildfly: deploy' запущенный экземпляр WildFly будет закрыт. –

2

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

Поскольку maven запускает цели на основе фазы жизненного цикла, вы можете вызвать start и deploy цель в фазе, которая проходит до фазы package. Цель run требует фазы package, поэтому все, что до этого должно сработать.

+0

Я пробовал это, но когда 'wildfly: run' выполняется после' wildfly: start', он пытается запустить новый экземпляр WildFly, используя те же порты, что, конечно, не удается. –