0

JBoss AS 7.1.x 用のいくつかの WAR および EAR ファイルを作成する Maven (マルチモジュール) プロジェクトがあります。

ある目的のために、1 つのモジュールの 1 つの生成済み EAR ファイルを新しい JBoss インスタンスにデプロイして実行し、それに対していくつかの REST Web サービス呼び出しを呼び出し、JBoss を停止する必要があります。次に、データベースに書き込まれたこれらの呼び出しの結果をパッケージ化する必要があります。

現在、CARGO と maven ant run プラグインを使用してこのタスクを実行しようとしています。

残念ながら、3 つ (maven、ant run、CARGO) を一緒にプレイすることはできません。貨物のアリの例で使用されているuberjarはありません。cargo ant タスクが JBoss を作成、開始、デプロイできるように、ant 実行タスクを設定するにはどうすればよいですか? 理想的には、別のフェーズで cargo-maven2-plugin によって解凍および構成されたものですか?

または、データベースを作成するという私の目標を達成するためのより良い方法はありますか?

パッケージフェーズのに実行されるため、統合テストフェーズは実際には使用できません。そのため、ant run を使用してコンパイル フェーズですべてを実行する予定です。

もう一度明確にするために:

次のことを行う必要があります。JBoss を開始します。WAR を展開します。WAR の起動が完了するまで待ちます。EAR ファイルを展開します。EAR がそのデータベースを初期化するまで待ちます。EAR によって実装されたいくつかの Web サービスを呼び出します。JBoss を停止します。データベースをパッケージ化します。

これらのすべてのステップは、厳密に連続している必要があります。

4

1 に答える 1

1

次の部分は、それを行う方法の印象を与えます。詳細を変更する必要があります。この場合、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>
于 2012-06-29T10:19:11.210 に答える