用Eclipse搭建Maven web项目有一些繁琐,如果操作不对会提示莫名其妙的错误信息,本文对容易出错的步骤做了特别说明。
1 打开Eclipse,File -> New -> Maven Project
第一个界面直接Next跳过
第二个界面中选择maven-archetype-webapp,如下图
接下来的界面中,Group Id填写demo.maven,Artifact Id填写maven-web-demo,如下图
其他忽略,点击Finish完成向导
完成后的目录结构如下图,如果有错误提示先不用管
2 转为Dynamic Web Project
项目上右键 -> 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目录。
3 配置pom.xml
增加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,如下图:
保存后,项目就全部建立完毕了。
最后检查一下部署配置,应该包含下图中的项目,如果缺少可以手动添加进去:
4 测试
添加一个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