Jetty7 - 此插件更名为jetty-maven-plugin,以便更符合maven2的协定。为了在Web应用做快速应用 开发做准备,详见多Web应用源目录。
为了在Jetty里运行一个Web应用,你如果按照Maven默认的做法构造(resources文件存 放,${basedir}/src/main/webapp下Classes文件存放在${project.build.outputDirectory}下,web.xml 的配置描述${basedir}/src/main/webapp/WEB-INF/web.xml),你不需要配置任何其它东西。
只需输入:
mvn jetty:run
这将在端口为8080的Jetty服务器上启动你的项目。Jetty将持续运行,直到插件是明确停止,例如, 按下<ctrl-c>,您也可以使用mvn jetty:stop命令。
委托这个插件运行Web应用是非常方便的,因为它可以配置成能定期扫描Web应用的任何改变和自动部 署Web应用。这就可以消除开发周期中编译和部署的步骤从而更加富有成效。你使用的IDE时对项目做的任 何改变,都将直接自动导入到当前运行的web容器里,使您可以立即对其进行测试,立竿见影。
如果不管出于什么原因,你总不能运行一个未组合过的web应用吧,在下文讨论中提到这个插件同样也 支持jetty:run-war和jetty:run-exploded命令。
关于其他命令的更多信息请查阅Jetty文档中的mvn jetty:run page、mvn jetty:run-exploded page 、mvn jetty:run-war page。
自动执行插件
有时候,例如在做集成测试时,你当然希望在测试开始时自动运行你的项目,测试完成时停止,而不 只是手动的在命令行执行mvn jetty:run吧。
要做到这一点,你需要为jetty 插件创建几个<execution>脚本,并使用 <daemon>true</daemon>配置选项来预防Jetty无限期运行,迫使它只在执行Maven时才运行 。
像下面pom.xml片段中描述的pre-integration-test和post-integration-test 就是用来触发执行和关 闭Jetty:
<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>
</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>