用Eclipse搭建Maven web项目有一些繁琐,如果操作不对会提示莫名其妙的错误信息,本文对容易出错的步骤做了特别说明。
第一个界面直接Next跳过
第二个界面中选择maven-archetype-webapp,如下图
接下来的界面中,Group Id填写demo.maven,Artifact Id填写maven-web-demo,如下图
其他忽略,点击Finish完成向导
完成后的目录结构如下图,如果有错误提示先不用管
项目上右键 -> Properties -> Project Facets
注意这里是第一个容易出错的地方,如果直接把Dynamic Web Module改为3.0,会提示 Cannot change version of project facet Dynamic Web Module to 3.0;直接修改web.xml,也仍然无法修改。需要按以下步骤操作:
1)取消勾选Dynamic Web Module,把Java设置为1.6以上(跟本机安装的JDK版本一致)
点击OK保存退出
2)修改 /src/main/webapp/WEB-INF/web.xml
<?xml version="1.0" encoding="UTF-8"?> <web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" version="3.0"> <display-name>Servlet 3.0 Web Application</display-name> </web-app>3)从新打开 Project Facets
勾选Dynamic Web Module(这时版本号已经自动变成3.0),保存退出
此时目录结构变更,如下图:
新增加了一个WebContent目录,但是不符合Maven的目录规范,我们把WebContent下的所有子目录和文件剪切到/src/main/webapp下,并删除WebContent目录。
增加dependency: javaee-web-api
增加Maven编译器插件,完成后pom.xml文件如下:
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>demo.maven</groupId> <artifactId>maven-web-demo</artifactId> <packaging>war</packaging> <version>0.0.1-SNAPSHOT</version> <name>maven-web-demo Maven Webapp</name> <url>http://maven.apache.org</url> <dependencies> <dependency> <groupId>javax</groupId> <artifactId>javaee-web-api</artifactId> <version>7.0</version> <scope>provided</scope> </dependency> </dependencies> <build> <finalName>maven-web-demo</finalName> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-compiler-plugin</artifactId> <version>2.3.2</version> <configuration> <source>1.8</source> <target>1.8</target> </configuration> </plugin> </plugins> </build> </project>注意编译器的版本根据本机JDK版本设置,但必须1.6以上
保存后,在项目上点击右键 -> Maven -> Update project。到这里,如果没有意外,项目上不会再有错误提示,但是新的问题出现,如下图的目录结构:
Java Resources中没有 src/main/java 目录,如果手工建立,又会提示已存在,这是第二个不容易定位问题的地方。解决方法如下:
项目上右键 -> Properties -> Java Build Path,勾选上Jre System Library,如下图:
保存后,项目就全部建立完毕了。
最后检查一下部署配置,应该包含下图中的项目,如果缺少可以手动添加进去:
添加一个Servlet测试
在Java Resources/src/main/java下新建一个Servlet
package demo; import java.io.IOException; import javax.servlet.ServletException; import javax.servlet.annotation.WebServlet; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; @WebServlet("/Hello") public class Hello extends HttpServlet { private static final long serialVersionUID = 1L; public Hello() { super(); } protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { response.getWriter().println("Hello world!"); } protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { } }运行,Run as -> Run on server
成功~
有的同学会说,现在谁还用Selvlet,别急,下一节,我们来演示把这个web项目改造为SpringMVC项目
代码下载 http://pan.baidu.com/s/1kVq4fXl