我有一个maven(多模块)项目,为JBoss AS 7.1.x创建一些WAR和EAR文件。
出于一个目的,我需要将一个模块的一个生成的EAR文件部署到一个新的JBoss实例并运行它,调用一些REST Web服务调用并停止JBoss。然后我需要打包写入数据库的这些调用的结果。
目前,我正在尝试使用CARGO和maven ant运行插件来执行此任务。
不幸的是,我无法让三人(maven,ant run和CARGO)一起玩。我没有在货物的蚂蚁例子中使用的uberjar。如何配置ant运行任务,以便货物任务可以创建,启动,部署我的JBoss?理想情况下,货物maven2插件在另一个阶段拆包和配置?
或者,有没有更好的方法来实现我创建数据库的目标?
我无法真正使用集成测试阶段,因为它在包阶段之后执行。所以,我计划在使用ant run的编译阶段完成所有工作。
再次澄清:
我需要执行以下操作:启动JBoss;部署WAR;等到WAR的启动完成;部署EAR文件;等到EAR初始化它的数据库;在EAR实施中调用一些Web服务;停止JBoss;打包数据库。
所有这些步骤都必须严格顺序。
答案 0 :(得分:1)
following part gives you an impression how to do that。您必须更改详细信息。在给定的情况下,我使用Tomcat。这将下载Tomcat存档解压缩并在本地安装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>