首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 软件管理 > 软件开发 >

Maven Jetty Plugin 配备指南(一)

2012-09-25 
Maven Jetty Plugin 配置指南(一)为了在Jetty里运行一个Web应用,你如果按照Maven默认的做法构造(resources

Maven Jetty Plugin 配置指南(一)

为了在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>

?

???????? 注意:Maven默认都是通过org.apache.maven.plugins的groupId来查找插件的,即使这个groupId跟上面要表达的内容完全不同。为了更明确的指向这个groupId是我们需要的插件,唯一的办法就是在settings.xml也做如下设置:

???????<profile>

?????????????????...

???????????????????????????????????? ??<pluginGroups>

???????????????????????????????????? ????<pluginGroup>org.mortbay.jetty</pluginGroup>

???????????????????????????????????? ??</pluginGroups>

</profile>

?

如何通过命令行停止插件

? 委托Jetty插件无限期运行的目标包括run、run-war和run-exploded。你可以在视窗控制终端(如DOS窗口)使用<ctrl-c>关闭它,或者在另一个视窗控制终端使用stop目标关闭。如果你希望能使用mvn jetty:stop 执行关闭命令,则需要你在插件中配置一个特殊的端口和控制键。下面是一个例子配置:

<plugin>

??????? <groupId>org.mortbay.jetty</groupId>

??????? <artifactId>maven-jetty-plugin</artifactId>

??????? <version>6.1.10</version>

??????? <configuration>

????????? <stopPort>9966</stopPort>

????????? <stopKey>foo</stopKey>

?????? ?</configuration>

</plugin>

开始:

mvn jetty:start

关闭:

mvn jetty:stop

热点排行