Projemde, özel JBoss AS'yi almak ve paketini açmak için bir Maven modülü oluşturduk.
Daha sonra tüm test senaryoları bu Jboss AS'nin altında gömülü kap olarak çalıştırılabilir.
Yerleşik kapsayıcıyı çağırmak için jboss-ejb3 gömülü-standalone kullanıyoruz, ancak JBOSS_HOME ortam değişkenlerini buluyor ve bunu çalıştırmak için kullanıyoruz. Böylece, mvn yüklemesi için JBOSS_HOME'u güncellememiz gerekiyor. Maven başına çalışma ortam değişkenlerini nasıl ayarlayabilirim?
[INFO] --- exec-maven-plugin:1.2.1:exec (resetJbossHome) @ test-embedded ---
....
JBOSS_HOME=C:/Sample/embedded-container/jboss-6.1.0.Final
görebilirsiniz konsolun çıktısında
<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>
....
Ancak JBOSS'u başlatırken, orijin JBOSS_HOME seti ile çalışıyor. Ayrıca, maven-antrun-plugin kullanmayı da denedim.
<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>
Aynısı çıkıyor.
Yapılandırmada yanlış mıyım yoksa daha iyi bir yolu var mı?
Aslında asıl sorun ayarladıktan sonra ise environmentVariables, ne ayarlamış olursanız olun, JBoss AS'yi başlatırken etkili olmaz. :( – Edison
JBoss ayrı bir süreç içinde akıyor mu? Belki bu işlem, temel env'den miras alır ve başlatma işleminizden env değil mi? –
Projemde, JUnit testi, maven-failsafe-plugin tarafından başlatılır ve testte durumda kendisi jboss-ejb3 gömülü-bağımsız kavanoz tarafından jboss başlatılacak createEJBContainer yöntemini çağırmak olacaktır, jboss kapsayıcı olarak başlatacaktır – Edison