排除maven中的目标

时间:2012-09-18 15:05:51

标签: java maven jetty

我已经使用Selenium完成了一些集成测试,所以我已经在预集成测试阶段定义了一个目标,所以我:

  • 启动码头
  • 部署应用
  • 执行测试
  • 停止码头

这在我的本地服务器上运行良好。

然而,现在我正在使用tomcat将应用程序部署到开发服务器,并且我希望使用此tomcat执行此测试,而不是使用Jetty,并且我的构建无法尝试在与tomcat相同的端口上启动Jetty(8080) )。我正在执行一个mvn包。

maven中是否有任何参数可以用来跳过这个目标?

这是我用于在集成测试之前启动服务器的代码片段:

        <plugin>
            <groupId>org.mortbay.jetty</groupId>
            <artifactId>maven-jetty-plugin</artifactId>
            <version>6.1.10</version>
            <configuration>
                <scanIntervalSeconds>10</scanIntervalSeconds>
                <stopKey>foo</stopKey>
                <stopPort>9999</stopPort>
                <contextPath>/</contextPath>
            </configuration>
            <executions>
                <execution>
                    <id>start-jetty</id>
                    <phase>pre-integration-test</phase>
                    <goals>
                        <goal>run</goal>
                    </goals>
                    <configuration>
                        <scanIntervalSeconds>0</scanIntervalSeconds>
                        <daemon>true</daemon>
                    </configuration>
                </execution>
                <execution>
                    <id>stop-jetty</id>
                    <phase>post-integration-test</phase>
                    <goals>
                        <goal>stop</goal>
                    </goals>
                </execution>
            </executions>
        </plugin>

2 个答案:

答案 0 :(得分:2)

您可以使用maven profiles解决问题。为Jetty容器创建配置文件,为Tomcat创建单独的配置文件

答案 1 :(得分:0)

从Maven 2.0.10开始,可以使用命令行停用一个或多个配置文件,方法是在其标识符前加上字符&#39;!&#39;或者&#39; - &#39;如下图所示:

mvn groupId:artifactId:goal -P !profile-1,!profile-2

这可用于停用标记为activeByDefault的配置文件或通过其激活配置激活的配置文件。

Here是更多信息