本文内容大多基于官方文档和网上前辈经验总结,经过个人实践加以整理积累,仅供参考。
1 新建 Maven Project
(1) Eclipse 菜单栏中点击 File -> New -> Other… 或在 Project Explorer 中点击鼠标右键 New -> Other…,在弹出的 New 窗口中选择 Maven -> Maven Project,点击 Next>
(2) 在 New Maven Project 窗口中勾选以下选项,点击 Next>
(3) 输入 Group Id,Artifact Id,Version,将 Packaging 设置为 “war”,点击 Finish
(4) 然后在 Project Explorer 中可以看到刚新建好的 maven web工程,注意此时的工程目录结构
2 修改工程报错
新建的 Maven Web 工程存在问题,在 Eclipse Markers 中可以看到具体错误提示
(1) 右键工程点击 Properties(或选中工程按下快捷键 Alt+Enter),打开 Properties 窗口,点击 Project Facets,去除 Dynamic Web Module 的勾选项,将 Java 设置为本地 JDK 版本,点击 OK 确定
注意工程目录结构变化
(2) 再次打开工程的 Properties 窗口,点击 Java Build Path,确认JRE System Library 已经修改为本地 JDK
(3) 点击 Properties 窗口中的 Java Compiler,确保 JDK Compliance 为本地 JDK 环境
(4) 再次点击 Properties 窗口中的 Project Facets,勾选 Dynamic Web Module,注意勾选后出现 Further configuration available…
(5) 点击 Further configuration available… 后弹出 Modify Faceted Project 窗口,修改 Content directory 为 src/main/webapp,勾选 Generate web.xml deployment descriptor 生成 web.xml
点击 OK 后注意工程目录变化,在 src/main/webapp 下自动生成两个文件夹:META-INF 和 WEB-INF,WEB-INF 下包含一个 lib 文件夹和 web.xml,之前工程的报错问题也已解决
(6) 打开工程的 Properties 窗口,点击 Deployment Assembly,
注意:
/src/main/webapp 是打包的根目录
/src/main/java 和 /src/main/resources 打包进根目录的 WEB-INF/classes 目录下
Maven Dependencies 打包进根目录的 WEB-INF/lib 目录下
/src/test/java 和 /src/test/resources 是测试相关的代码和资源,可以不用打包发布,直接 Remove
3 Eclipse 运行 Maven Web 工程验证是否成功
(1) 修改 web.xml 如下
(2) 添加 Maven Web 主页
index.jsp
注意,JSP页面报错,查看错误信息
从错误信息可以看出是缺少 Servlet JAR 包导致,当部署到 Tomcat 上以后此错误就自动解决,如果想在部署前解决此错误有以下两种方法
方法一:打开工程的 Properties 窗口,点击 Project Facets,在 Runtimes TAB 页中勾选 Apache Tomcat,点击 OK 后工程不再报错
方法二:在 pom.xml 文件中添加 servlet 依赖
生成的 pom 文件内容
(3) 部署到 Tomcat 上并运行,右键工程 Run As -> Run on Server,选中 Tomcat 点击 Finish
Tomcat 启动成功后显示的 Maven Web 工程主页