maven嵌入式glassfish插件部署2个应用程序



我有以下用例:我有一个用SpringMVC实现的web应用程序,它使用的是用SpringWS-实现的web服务

项目使用maven作为构建工具。现在我想实现web应用程序的集成测试。为此,我想使用maven嵌入式glassfish插件。我在pom.xml中有以下maven配置:

    <plugin>
    <groupId>org.glassfish</groupId>
    <artifactId>maven-embedded-glassfish-plugin</artifactId>
        <version>3.1.1</version>
        <configuration>
           <goalPrefix>embedded-glassfish</goalPrefix>
           <app>${basedir}/target/web-app.war</app>
           <autoDelete>true</autoDelete>
           <port>8080</port>
           <name>web-app</name>
           <configFile>src/test/resources/glassfish/domain.xml</configFile>
        </configuration>
        <executions>
           <execution>
              <id>start-glassfish</id>
              <phase>pre-integration-test</phase>
              <goals>
                 <goal>start</goal>
              </goals>
           </execution>
           <execution>
              <id>glassfish-deploy</id>
              <phase>pre-integration-test</phase>
              <goals>
                 <goal>deploy</goal>
              </goals>
           </execution>
           <execution>
              <id>glassfish-undeploy</id>
              <phase>post-integration-test</phase>
              <goals>
                 <goal>undeploy</goal>
              </goals>
           </execution>
           <execution>
              <id>stop-glassfish</id>
              <phase>post-integration-test</phase>
              <goals>
                 <goal>stop</goal>
              </goals>
           </execution>
        </executions>
      </plugin> 

一切都很好。但现在我需要添加webservice.war文件的部署。现在这不是我pom的依赖。我只有一个存根类,用于调用web-app.war应用程序中定义的web服务。

那么,如何部署第二个应用程序有什么好的解决方案吗?

我想自动成为某种东西,也许可以使用maven存储库,因为如果我进行修改,我想自动使用新版本的web服务。

我在users@embedded-glassfish.java.net和Bhavani Shankar先生的以下解决方案:

  <execution>
      <id>glassfish-additional_deployments</id>
      <phase>pre-integration-test</phase>
      <goals>
       <goal>admin</goal>
      </goals>
      <configuration>
        <commands>
          <param>deploy ${basedir}/src/test/resources/integrationtest/app-ws.war</param>
        </commands>
      </configuration>
  </execution>

从理论上讲,您可以在war的maven中设置依赖项,然后也可以从lib目录部署war文件。

这个插件的一些有趣之处,如果有人想使用选项:

    <instanceRoot>${project.build.directory}/glassfish</instanceRoot>

在3.1.1版本中,仅在现有的玻璃鱼安装中不起作用。如果你想设置这个属性,那么使用(不需要安装玻璃鱼):

      <systemProperties>
        <property>glassfish.embedded.tmpdir=target/glassfish</property>
      </systemProperties>

对于3.1.1版本的maven嵌入式glassfish插件,您只需要将"glassfish.embedded.tmpdir"属性设置为静态值(对于windows操作系统,但我不确定是否适用于linux)。因为maven无法转换路径。

我正在为玻璃鱼部署一只耳朵,它非常适合我。

我的配置是:

    <plugin>
            <groupId>org.glassfish</groupId>
            <artifactId>maven-embedded-glassfish-plugin</artifactId>
            <version>3.1.1</version>
            <configuration>
                <systemProperties>
                    <property>glassfish.embedded.tmpdir=target/glassfish</property>
                </systemProperties>
                <app>${project.build.directory}/${build.finalName}.ear</app>
                <autoDelete>true</autoDelete>
                <port>8080</port>
                <contextRoot>test</contextRoot>
            </configuration>
            <executions>
                <execution>
                    <id>start-glassfish</id>
                    <phase>install</phase>
                    <goals>
                        <goal>run</goal>
                    </goals>
                </execution>
            </executions>
        </plugin>

但如果我删除<property>glassfish.embedded.tmpdir=target/glassfish</property> ,那真的很有趣

部分,然后启动服务器,它加载项目的速度很慢,而且不稳定。

相关内容

  • 没有找到相关文章

最新更新