一个典型的Web项目在Maven下的目录结构如下:
从图中可以看出Maven Web的目录结构与一般的Maven目录结构的区别是:在src/main/中多了一个webapp的目录,该目录下存放的就是WEB-INF的内容。
Maven Web除了目录结构不一样外,还需要把pom.xml的<packaging>配置为war。大家都知道web的打包方式是war。
如何使用jetty-maven-plugin进行调试
传统的Web测试方法要求我们编译、测试、打包及部署,这往往会消耗数10秒至数分钟的时间,jetty-maven-plugin能够帮助我们节省时间,它能够周期性地检查项目内容,发现变更后自动更新到内置的Jetty Web容器中,换句话说,就是能帮我们省去了打包及部署的时间。
要使用jetty-maven-plugin,只需要在pom中稍加配置就可以了。如:
<plugin>
<groupId>org.mortbay.jetty</groupId>
<artifactId>jetty-maven-plugin</artifactId>
<version>7.1.6.v20100715</version>
<configuration>
<!-- 插件扫描项目的时间间隔 -->
<scanInterwebAvalSeconds>10</scanIntervalSeconds>
<webAppConfig>
<!-- web应用访问的contextpath。用户便可以通过http://hostname:port/test/ -->
<contextPath>/test</contextPath>
</webAppConfig>
</configuration>
</plugin>
由于默认情况下,只有org.apache.maven.plugins和org.codehaus.mojo两个groupId下的插件才支持简化的命令行调用,如mvn help:system,但jetty-maven-plugin不属于默认情况,为了能简化jetty-maven-plugin的命令,还需要配置settings.xml:
<settings>
<pluginGroups>
<pluginGroup>org.mortbay.jetty</pluginGroup>
</pluginGroups>
</settings>
现在就可以使用下面命令启动Jetty,并默认监听本地的8080端口,并将当前项目部署到容器中,同时扫描代码改动:
mvn jetty:run
如果想要使用其他端口,可以添加jetty.port参数。如:
mvn jetty:run -Djetty.port=9999
如果想要进一步了解jetty-maven-plugin插件,可以访问http://wiki.eclipse.org/Jetty/Feature/Jetty_Maven_Plugin