2

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

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

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

但是,现在我正在使用 tomcat 将应用程序部署到开发服务器,并且我希望使用此 tomcat 执行此测试,而不是使用 Jetty,并且我的构建尝试在与 tomcat (8080) 相同的端口上启动 Jetty 失败。我正在执行一个 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>
4

2 回答 2

4

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

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

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

这里有更多信息

于 2018-03-27T10:29:39.007 回答
3

您可以使用 Maven配置文件解决您的问题。为 Jetty 容器创建一个配置文件并为 Tomcat 创建一个单独的配置文件

于 2012-09-18T15:07:32.597 回答