传统的Web测试方法要求我们编译,测试,打包及部署,这往往会耗费数分钟的时间,jetty-maven-plugin能够帮助我们节省时间,它能够周期性地检查项目内容,发现变更后自动更新到内置的Jetty Web容器中。换句话说他帮我们省去了打包和部署的步骤。jetty-maven-plugin默认就很好地支持了Maven的项目目录,通常情况下插件发现编译后的变化后,自动将其更新到Jetty容器,就可以直接测试Web页面了。
<plugin>
<groupId>org.eclipse.jetty</groupId>
<artifactId>jetty-maven-plugin</artifactId>
<version>9.4.2.v20170220</version>
<configuration>
<scanIntervalSeconds>1</scanIntervalSeconds>
<!-- 定义了一个Server -->
<!-- <httpConnector>
<port>80</port>
<idleTimeout>60000</idleTimeout>
</httpConnector> -->
<!-- 定义了第二个Server -->
<jettyXml>${project.basedir}/profile/dev/jetty.xml,${project.basedir}/profile/dev/jetty-http.xml,${project.basedir}/profile/dev/jetty-ssl.xml,${project.basedir}/profile/dev/jetty-https.xml</jettyXml>
</configuration>
</plugin>
此配置定义了两个http server,如注释,一个是用httpConnector元素定义的,另一个是加载的jetty-http.xml文件定义的。org.eclipse.jetty不是官方默认的Maven插件,他的groupId是org.eclipse.jetty,默认情况下只有org.apache.maven.plugins和org.codehaus.mojo两个groupId下的插件才能使用简化命令,为了能在命令行直接运行mvn jetty:run,用户需要配置settings.xml如下:
<settings>
<pluginGroups>
<pluginGroup>org.eclipse.jetty</pluginGroup>
</pluginGroups>
</settings>
现在可以使用命令mvn jetty:run运行插件了,并且默认监听8080端口,同时还会根据用户配置扫描代码改动。如果希望使用别的端口可以添加jetty.port参数如:
mvn jetty:run -Djetty.port=9999