Step by Step系列之Maven(3) - 第一个Web项目

用Eclipse搭建Maven web项目有一些繁琐,如果操作不对会提示莫名其妙的错误信息,本文对容易出错的步骤做了特别说明。

1 打开Eclipse,File -> New -> Maven Project

第一个界面直接Next跳过

第二个界面中选择maven-archetype-webapp,如下图

Step by Step系列之Maven(3) - 第一个Web项目_第1张图片

接下来的界面中,Group Id填写demo.maven,Artifact Id填写maven-web-demo,如下图


其他忽略,点击Finish完成向导

完成后的目录结构如下图,如果有错误提示先不用管

Step by Step系列之Maven(3) - 第一个Web项目_第2张图片

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版本一致)

Step by Step系列之Maven(3) - 第一个Web项目_第3张图片

点击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,如下图:

Step by Step系列之Maven(3) - 第一个Web项目_第4张图片

保存后,项目就全部建立完毕了。

最后检查一下部署配置,应该包含下图中的项目,如果缺少可以手动添加进去:


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

你可能感兴趣的:(java,maven,Web)