2012-06-29 2 views
0

У меня есть проект maven (multi-module), создающий некоторые WAR и EAR-файлы для JBoss AS 7.1.x.Запуск Cargo от Maven Antrun Plugin

С одной целью мне нужно развернуть один сгенерированный EAR-файл одного модуля на новый экземпляр JBoss и запустить его, вызвать некоторые вызовы веб-службы REST против него и остановить JBoss. Затем мне нужно упаковать результаты этих вызовов, которые были записаны в базу данных.

В настоящее время я пытаюсь использовать CARGO и плагин maven ant run для выполнения этой задачи.

К сожалению, я не могу получить три (maven, ant run и CARGO), чтобы играть вместе. У меня нет uberjar, который используется в муравьиных примерах груза. Как настроить задачу запуска муравья, чтобы задача загрузки мусора могла создать, запустить, развернуть мой JBoss? В идеале, тот, который распакован и настроен плагином-maven2-plugin в другой фазе?

Или, есть ли лучший способ достичь моей цели создания базы данных?

Я не могу использовать фазу интеграции-тестирования, так как он выполнен после фаза упаковки. Итак, я планирую сделать все это на этапе компиляции, используя ant run.

Для уточнения снова:

мне нужно сделать следующее: запустить JBoss; развернуть WAR; дождитесь завершения запуска WAR; развернуть файл EAR; дождитесь, пока EAR инициализирует свою базу данных; Позвоните в некоторые веб-службы, внедренные EAR; остановить JBoss; пакет базы данных.

Все эти шаги должны быть строго последовательный.

+0

Почему бы не использовать плагин m2 для перевозки maven вместо Antrun? – khmarbaise

+0

Мне нужно сделать следующее: запустите JBoss; развернуть WAR; * дождитесь * до завершения запуска WAR; развернуть файл EAR; дождитесь, пока EAR инициализирует свою базу данных; Позвоните в некоторые веб-службы, внедренные EAR; остановить JBoss; пакет базы данных. Как мне это сделать с плагином cargo2-maven? – Frank

ответ

1

following part gives you an impression how to do that. Вы должны изменить детали. В данном случае я использую Tomcat. Это будет загружать архив Tomcat uncompress и устанавливать Tomcat локально ...

<plugin> 
    <groupId>org.codehaus.cargo</groupId> 
    <artifactId>cargo-maven2-plugin</artifactId> 
    <configuration> 
     <wait>false</wait> 
     <container> 
     <containerId>tomcat${tomcat.major}x</containerId> 
     <zipUrlInstaller> 
      <url>http://archive.apache.org/dist/tomcat/tomcat-${tomcat.major}/v${tomcat.version}/bin/apache-tomcat-${tomcat.version}.tar.gz</url> 
      <extractDir>${project.build.directory}/extract/</extractDir> 
      <downloadDir>${project.build.directory}/download/</downloadDir> 
     </zipUrlInstaller> 
     <output>${project.build.directory}/tomcat${tomcat.major}x.log</output> 
     <log>${project.build.directory}/cargo.log</log> 
     </container> 
     <configuration> 
     <home>${project.build.directory}/tomcat-${tomcat.version}/container</home> 
     <properties> 
      <cargo.logging>high</cargo.logging> 
      <cargo.servlet.port>9080</cargo.servlet.port> 
      <cargo.tomcat.ajp.port>9008</cargo.tomcat.ajp.port> 
     </properties> 
     </configuration> 
    </configuration> 
    <executions> 
     <execution> 
     <id>start-container</id> 
     <phase>pre-integration-test</phase> 
     <goals> 
      <goal>start</goal> 
      <goal>deploy</goal> 
     </goals> 
     <configuration> 
      <deployer> 
      <deployables> 
       <deployable> 
       <groupId>${project.groupId}</groupId> 
       <artifactId>mod-war</artifactId> 
       <type>war</type> 
       <pingURL>http://localhost:9080/mod-war</pingURL> 
       <pingTimeout>30000</pingTimeout> 
       <properties> 
        <context>mod-war</context> 
       </properties> 
       </deployable> 
      </deployables> 
      </deployer> 
     </configuration> 
     </execution> 
     <execution> 
     <id>stop-container</id> 
     <phase>post-integration-test</phase> 
     <goals> 
      <goal>stop</goal> 
     </goals> 
     </execution> 
    </executions> 
    </plugin> 
+0

многое помогло. Теперь мне просто нужно выяснить, как выполнить несколько развертываний, и все это на этапе компиляции. – Frank

+0

На этапе компиляции? Это не имеет смысла. Я сделал бы это на этапе интеграции интеграции и создаю отдельный модуль, который может быть активирован профилем. – khmarbaise

+0

Мне нужно сделать это в какой-то фазе перед пакетом. Какой из них вы рекомендуете? интеграция-тест определенно не работает или делает это? – Frank