Maven学习笔记—使用Eclipse插件创建Java WebApp项目
使用 Java 的猿们,最多接触的大概就是 web 项目了吧?在学习 Maven 的过程中,首先当然就是创建一个 webapp 项目。
自己在尝试的过程中,碰到了很多的问题。我把详细的过程都记录下来,以便今后参考。
使用 Maven 的 m2eclipse 插件创建 Java WebApp 工程的步骤:
如果未搭建好Maven开发环境,请参考前一篇:Maven学习笔记——环境搭建
一、新建工程项目:
打开 Eclipse, 菜单栏选择 File -> new -> other,在弹出的对话框中找到 Maven Project.
在弹出的新建 Maven 项目对话框中,不要勾选第一项 “Create a simple project”,如下图所示,点击 Next。
在列表中找到并选择“maven-archetype-webapp”,点击Next.如下图所示:
填写项目相关信息,Finish。
建好的工程结构如下图:
可以看到,web资源文件的目录为 arc/main/webapp
第二步:修改JRE版本。
项目生成后,JRE 版本默认为1.5 ,我们需要修改成更高版本的。
在项目的 POM.xml 文件中,加入如下配置:
<build> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-compiler-plugin</artifactId> <version>2.1</version> <configuration> <source>1.7</source> <target>1.7</target> </configuration> </plugin> </plugins> </build>
(也可以通过修改 settings.xml 全局配置以让 Maven 默认设置特定版本的 JRE,具体方法这里先不写了)
设置完后,选中项目右击,弹出的菜单中选择 Maven->Update Project .↓↓↓
更新之后,发现项目还存在错误。
在项目根目录右击弹出菜单,选择 Build Path ->Configure Buile Path,进入项目的 Java build path 配置页面:
所示错误如下图,提示缺少(missing)两个文件夹。但其实文件夹是存在的。
这时只要将 Libraries 标签中的 JRE System Library 设置为本机默认的就可以解决该错误(不知道为什么会这样)
如下图,查看 Libraries 标签↓↓↓
双击 JRE System Library 项,弹出 JRE 设置界面:↓↓↓
直接选 Workspace default JRE.
完成后,发现项目还有三个报错,如下图所示。别急,我们在接下来的步骤中一个一个解决。
第三步:添加服务器运行环境(Server Runtime)
项目中,index.jsp 显示有错误,错误信息为:
The superclass "javax.servlet.http.HttpServlet" was not found on the Java Build Path
这时因为缺少了servlet-api、JSP-API、JSTL等包。
我们不需要一个一个把包导进来,因为 Tomcat 等 Servlet 容器都提供了这个包。在 Eclipse 中对项目设置一下运行环境就可以了。
切换到 Libraries 标签,点击“Add Library”按钮。
在弹出的对话框中,选择“Server Runtime”。
选择 Tomcat 服务器。如果这里没有服务器配置,请事先配置一个 Tomcat 等服务器。
(不知道如何配置服务器的话,就用搜索引擎搜一番)。
选中 Tomcat,点击 Finish 后,看到工程已经不再有那两个 Servlet 的报错了。
第四步:Project Facet 配置
到这一步时,项目应该还有一处错误:
Java compiler level does not match the version of the installed java project facet.
如下图所示:
我们需要通过修改 Project Facets 来解决这个错误。
打开项目的 Project Facet 置项,如下图,将 Java 的版本设置为 1.7,确定。
如果这时已经时1.7了,则无需修改。
(也不是一定需要1.7,基本上和之前步骤配置的 JRE 版本一致即可)
现在应该不再报错了。
但是我们还需要将 Project Facet 中的 Dynamic web module 的版本设置的更高一些。
如下图所示,我将它设置为3.0版本。
这时可能会报如下的错误:
Cannot change version of project facet Dynamic Web Module to 3.0
我在网上找了好多信息,发现所有的解决方法完全没有效果。
但是偶然的,我发现一个简单的方法就能解决这个问题(不知道是通用的还是我自己环境中的特例)。
方法如下:
将 Dynamic Web Module 前的勾取消,点击 Apply。然后再把勾给勾上,发现已经不报错了。
第五步:运行
设置完毕,运行一下试试:
右击项目 -> Run as -> Run on Server。
选择一个服务器:
这时项目应该已经配置到服务器中了:
点击 Finish,运行成功后打开链接:
http://localhost:8080/hello-maven-web/index.jsp
发现浏览器报404错误。
检查项目的部署配置:
发现少了 webapp 这个目录部署路径。
点击“Add”,弹出的对话框中选择“folder”,选中 webapp 文件夹:
重新运行一次,终于看到 Hello World!
最后,我也不知道为什么,似乎很简单的事情,会变得如此复杂。