私のプロジェクトでは、特定の JBoss AS を取得してアンパックする Maven モジュールを作成しました。
その後、この Jboss AS の下で組み込みコンテナとしてすべてのテスト ケースを実行できます。
jboss-ejb3-embedded-standalone を使用して組み込みコンテナーを呼び出していますが、環境変数から JBOSS_HOME を見つけ、それを使用して実行するだけです。したがって、mvn インストールごとに JBOSS_HOME を更新する必要があります。
以下のように exec-maven-plugin を導入して、maven でこれを実行しようとしました。
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>exec-maven-plugin</artifactId>
<version>1.2.1</version>
<configuration>
<executable>env</executable>
<environmentVariables>
<JBOSS_HOME>
C:/Sample/embedded-container/jboss-${version.org.jboss.jbossas}
</JBOSS_HOME>
</environmentVariables>
</configuration>
<executions>
<execution>
<id>resetJbossHome</id>
<phase>integration-test</phase>
<goals>
<goal>exec</goal>
</goals>
</execution>
</executions>
</plugin>
コンソールの出力で、私は見ることができます
[INFO] --- exec-maven-plugin:1.2.1:exec (resetJbossHome) @ test-embedded ---
....
JBOSS_HOME=C:/Sample/embedded-container/jboss-6.1.0.Final
....
しかし、JBOSS を起動すると、元の JBOSS_HOME が設定されたものがまだ実行されています。
また、maven-antrun-plugin も試してみました。
<plugin>
<artifactId>maven-antrun-plugin</artifactId>
<executions>
<execution>
<id>copyRelease</id>
<phase>pre-integration-test</phase>
<configuration>
<tasks>
<exec executable="env">
<env key="JBOSS_HOME" value="C:/Sample/embedded-container/jboss-${version.org.jboss.jbossas}"/>
</exec>
</tasks>
</configuration>
<goals>
<goal>run</goal>
</goals>
</execution>
</executions>
</plugin>
それは同じことがわかります。
構成が間違っていますか、それとももっと良い方法がありますか?