我想使用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文件附加到此目标。
答案 0 :(得分:0)
这就是maven插件的设计方式。
它不适用于外部战争,多次战争,多种情境或生产用途。
它设计用于在单个项目上运行(可以是maven多模块反应器构建的一部分),其定义为<packaging>war</packaging>
。
只有jetty:start
允许继续执行,所有其他目标都不是为此设计的。
jetty:start
旨在与integration-test
阶段的maven和maven-failsafe-plugin
合作。
所有其他maven-jetty-plugin
目标都是为使用<packaging>war</packaging>