为了在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
分享到:
相关推荐
Maven Jetty Plugin是一款强大的工具,它将Jetty服务器集成到了Maven的构建流程中。这个插件允许开发者在开发过程中快速、便捷地运行和测试Java Web应用程序,而无需进行完整的部署过程。它的主要功能包括: 1. **...
`maven-jetty-plugin`是Maven的一个插件,它的主要作用是在Maven构建过程中,帮助我们运行和测试基于Servlet的Web应用程序。它允许开发者在开发环境中快速启动Jetty服务器,自动部署项目,并且能够随着代码的修改...
"Maven + Jetty Plugin" 是一个用于快速开发和测试Java Web应用程序的组合,它结合了Maven构建工具和Jetty服务器。Maven是一个强大的项目管理工具,它简化了构建、管理和部署Java项目的过程,而Jetty则是一个轻量级...
通过以上步骤,我们就成功地在Maven项目中配置了Jetty服务器的热部署。这种方式极大地提高了开发效率,使得开发者可以在编写代码的同时实时查看效果,减少了频繁的重启操作。记住,热部署只适用于开发环境,生产环境...
【标题】"jetty-maven-plugin-8.1.10.v20130312.zip" 是一个用于Maven项目的Jetty服务器插件的版本包,它主要用于在开发过程中快速部署和测试Java Web应用程序。Jetty是轻量级、高性能的HTTP服务器和Servlet容器,而...
在Maven的pom.xml文件中,我们需要添加Maven Jetty插件的配置。以下是一个基本的配置示例: ```xml ... ... <plugin> <groupId>org.mortbay.jetty <artifactId>maven-jetty-plugin <version>6.1.26...
总结起来,`Maven + Jetty`的配置是Java Web开发中的一个高效实践,通过它们,我们可以方便地管理项目依赖、构建Web应用,并利用轻量级的Jetty容器快速进行本地开发和测试。这不仅提高了开发效率,也使得项目更加...
【标题】:“jetty-console-maven-plugin-1.53.zip”是一个与Jetty服务器相关的Maven插件的版本包,版本号为1.53。Jetty是一款轻量级、开源的Java Web服务器和Servlet容器,广泛用于开发、测试和部署Web应用程序。...
maven-jetty-plugin-6.1.3.jar
Maven是一个项目管理工具,它帮助开发者构建、管理和部署Java项目,而Jetty则是一个轻量级的嵌入式Servlet容器,常用于快速启动Web应用程序。这篇内容将深入探讨如何将两者结合,以便在开发过程中实现高效且便捷的...
maven-jetty-plugin-6.1.7.jar
本教程将探讨如何使用Maven创建一个Web项目,并配置Jetty服务器进行运行。这涉及到的两个核心文件是`pom.xml`(Project Object Model)和`web.xml`(Web应用部署描述符),以及一个额外的`webdefault.xml`,它定义了...
maven-jetty-plugin-6.1.25-sources.jar
maven-jetty-plugin-6.1.26-sources.jar
maven-jetty-jspc-plugin-6.1.25-sources.jar
maven-tomcat-plugin让maven与tomcat配合得很好。它可以把应用部署到Tomcat服务器,也可以把tomcat作为内嵌服务器启动,就像jetty一样。 使用JPDA启动tomcat的远程调试功能。这样就能与eclipse配合起来,轻松地实现...
maven projects plugin出现红线怎么办,网上给许多比较蹩脚的方案。经过研究发现一个简洁的方法,一分钟就能搞定。
maven-jetty-jspc-plugin-6.1.22-site-component.jar