本文主要探讨如何在eclipse上建立maven项目。
笔者最近在学习maven,打算在eclipse上配置一个maven项目,用来开发jsp应用。在eclipse上,怎么用maven搭建jsp应用,网上的教程都有,但是这些教程都太过简略,搭建完项目之后,会遇到很多问题。比如,在搭建好maven项目之后,pom.xml会报错。出现诸如org.apache.maven:maven-plugin-api:pom:3.0 failed to transfer from这样的错误。同时,你建立的jsp文件也会报错,比如会提示缺少jakarta.servlet.http.HttpServlet类。而这些问题,网上的资料却没有给出解决方案。所以我写下这篇文章,完整地,详细地介绍了一遍如何在eclipse上用maven建立jsp项目,把可能会遇到的问题遇到的问题如何解决,详细地和大家讲解一下。
目录
1.初始工作——如何配置eclipse
1.1配置maven
1.2配置tomcat
2.创建项目
2.1创建项目
2.2编辑pom
3.项目的目录结构
4.运行项目
5.设置输出路径
以往在eclipse上开发maven,需要用到一个插件,但如今新版本的eclipse里集成了maven,但是在eclipse里创建maven项目之前,还是需要一些设置的。
点击Window->Preference,进入设置页面。在左侧的列表中,找到Maven项。点击Maven项左侧的三角,在下拉菜单中找到User Settings,如图所示:
可以看到这里边的前两个选项。其中Global Settings中输入的是你maven安装目录的配置文件路径。在你的maven安装目录中,会有一个conf文件夹,这个文件夹中有一个settings.xml文件,这个文件的路径就是Global Settings这项中要填的内容。
比方说我maven安装目录是/home/zhcnyuyang/datas/apache-maven-3.8.5/,那么我只需要在这个目录中,找到conf文件夹,然后进到conf文件夹中,找到settings.xml,这就是Global Settings的路径。所以我需要在Global Settings中输入的路径是/home/zhcnyuyang/datas/apache-maven-3.8.5/conf/settings.xml。
接下来一项是User Settings,这里要填的,是你maven本地仓库中settings.xml的路径。比方说我maven本地仓库是在/home/zhcnyuyang/datas/mavenproj/目录下,那么我User Settings的路径是/home/zhcnyuyang/datas/mavenproj/settings.xml。
至于第三项Local Repository,当你配置好前两项之后,自动就配置好了。
配置完成之后,点击Apply按钮应用设置。
开发jsp的时候,需要用到tomcat。tomcat如何安装,在此我就不再赘述。但安装好Tomcat之后,需要在eclipse中配置好Tomcat路径。在Eclipse中配置tomcat路径也是在Window->Preference下。在左侧的列表中,找到Server->Runtime Environment,如图所示。
点击右侧的Add按钮,在弹出的窗口中,可以看到很多款服务器的列表 。其中Tomcat在Apache目录下。在Apache目录中,找到你所使用的Tomcat版本,如图所示。
然后点击Next进入下一步,如图所示:
点击Browse,选择Tomcat的安装路径,如图所示:
直接选择Tomcat的安装目录即可。
然后点击Finishi,完成配置。
最后退回到Preference窗口后,点击Apply and Close,完成配置。
至此,maven和Tomcat都已经配置完了。现在我们可以创建项目了。
(注:这些配置好了之后,只在当前的workspace里生效。当你新建了一个新的工作空间后,新工作空间里的各项配置,从编辑器字体,窗口排列,到服务器和maven,都恢复了默认选项,需要重新配置!!!)
点击File->New->Maven Project,如图所示:
直接点next,在接下来的页面中,选择项目的类型,如图所示:
Catalog选择Internal,然后你就可以看到很多选项。由于我们要建立的是web项目,所以我们选择Group Id为org.apache.maven.archetypes,Artifact Id为maven-archetype-webapp的那项,也就是图中所选的那项。之后点击Next,进入下一个页面,如图所示:
输入你的项目的Group Id和Artifact Id,这两者有你自己随意设置。如图所示:
点击Finish,完成项目的创建。但是,目前我们的项目还无法运行,这时候我们需要编辑一下pom.xml文件,安装好插件和依赖。
打开项目中的pom.xml,可以看到如下内容:
可以看到,目前pom.xml中有报错信息,内容为Exception java.lang.ExceptionInInitializerError: Cannot access defaults field of Properties [in thread "Worker-26: Creating maven-archetype-webapp"]。我们首先要做的,是在项目中添加插件。在build标签下,finalName标签之后,添加如下所示内容:
org.apache.maven.plugins
maven-war-plugin
3.2.0
然后保存,我们可以看到pom.xml中的报错消失了。紧接着我们需要做的是添加依赖。maven项目中添加的依赖放在
javax.servlet.jsp.jstl
javax.servlet.jsp.jstl-api
1.2.1
taglibs
standard
1.1.2
javax.servlet
javax.servlet-api
3.1.0
provided
org.apache.maven.plugins
maven-resources-plugin
3.2.0
最后,整个pom.xml的代码如下所示:
4.0.0
com.yuyang.mvnpractice
mvn0001
war
0.0.1-SNAPSHOT
mvn0001 Maven Webapp
http://maven.apache.org
junit
junit
3.8.1
test
javax.servlet.jsp.jstl
javax.servlet.jsp.jstl-api
1.2.1
taglibs
standard
1.1.2
javax.servlet
javax.servlet-api
3.1.0
provided
org.apache.maven.plugins
maven-resources-plugin
3.2.0
mvn0001
org.apache.maven.plugins
maven-war-plugin
3.2.0
然后我们右键单击项目,执行Maven->Update Project命令,项目更新完成解决方法如下之后,就可以运行jsp文件了。
我们用maven创建的项目,目录结构如图所示:
其中src/webapp是你项目的web根目录,你要创建的网页文件都放在这个目录里,相当于Eclipse中Dynamic Web Project项目下的WebContent目录。
在src/main中创建一个java文件夹。然后,你项目中的java文件,像Servlet之类的,都可以放在src/main/java这个目录下。
右键单击webapp目录,选择New->JSP File,创建一个jsp页面
在新建的jsp页面中随意写一些东西
然后执行Run->Run As->Run on Server命令,在弹出的窗口中,选择服务器,如图所示:
然后点击Finish,可以看到,新创建的页面在浏览器中顺利运行了。
新创建的项目中,虽然可以正常运行jsp页面,但是如果你创建了一个servlet,你会发现当你访问servlet的时候,会提示404错误,解决方法如下:
首先,在项目的src/main/webapp/WEB-INF文件夹下,建立lib和classes两个文件夹,如图所示:
然后右键单击项目,选择Build Path->Configure Build Path命令,在打开的窗口中,点击Source选项卡,如图所示:
可以看到底部有一个Default out put folder选项,将其路径设置为[你的项目名]/src/main/webapp/WEB-INF/classes,具体可以参考上图。