run-war的jetty-maven-plugin阻止了maven的执行

时间:2016-06-09 15:11:18

标签: java maven embedded-jetty

我想使用jetty-maven-plugin作为一个平台,我可以用外部的混战来测试我的应用程序。

所以我设置了我的maven-jetty-plugin,配置如下:

                    <plugin>
                        <groupId>org.eclipse.jetty</groupId>
                        <artifactId>jetty-maven-plugin</artifactId>
                        <configuration>

                           <war>${project.build.directory}/some.war</war>

                        </configuration>
                        <executions>
                            <execution>
                                <id>start-jetty</id>
                                <phase>integration-test</phase>
                                <goals>
                                    <goal>run-war</goal>
                                </goals>
                                <configuration>
                           <war>${project.build.directory}/some.war</war>
                                </configuration>
                            </execution>
                            <execution>
                                <phase>post-integration-test</phase>
                                <goals>
                                    <goal>stop</goal>
                                </goals>
                                <configuration>
                                    <stopKey>stop</stopKey>
                                    <stopPort>8888</stopPort>
                                </configuration>
                            </execution>
                        </executions>
                    </plugin>

当我运行它时,我会得到类似的东西:

[INFO] Started ServerConnector@55b0e42e{HTTP/1.1,[http/1.1]}{0.0.0.0:8888}
[INFO] Started @21213ms
[INFO] Started Jetty Server

哪个好,但它会停止执行。之后我的测试应该运行,但它没有。我可以使用 jetty:start ,这将是一个没有战争的解决方法,因为它继续执行测试,但我无法将war文件附加到此目标。

1 个答案:

答案 0 :(得分:0)

这就是maven插件的设计方式。

它不适用于外部战争,多次战争,多种情境或生产用途。

它设计用于在单个项目上运行(可以是maven多模块反应器构建的一部分),其定义为<packaging>war</packaging>

只有jetty:start允许继续执行,所有其他目标都不是为此设计的。

jetty:start旨在与integration-test阶段的maven和maven-failsafe-plugin合作。

请参阅:http://maven.apache.org/surefire/maven-failsafe-plugin/usage.html#Using_jetty_and_maven-failsafe-plugin

所有其他maven-jetty-plugin目标都是为使用<packaging>war</packaging>

手动测试项目而设计的