新接手的一个项目,是maven项目,却不是web项目,无法部署到tomcat上,在Jetty服务器上启动,平时运行倒也没啥问题,但是有时候升级改造的时候,与生产环境用tomcat启动不一样,这样就容易出一些问题,就上网搜索如何把maven项目转变成web项目,转变方案很多,试了很多,项目在改造完之后总会报错,总是一些细小的操作失误导致的,总的来说,是别人的改造方案,个人感觉有问题,在这里我分享下我是如何改造的,希望能帮助到需要的朋友。
一、修改.project文件
进入项目根目录,可看到.project文件,打开。找到<natures>...</natures>代码段,在该代码段中加入如下标签内容并保存:
<nature>org.eclipse.wst.common.project.facet.core.nature</nature>
<nature>org.eclipse.wst.common.modulecore.ModuleCoreNature</nature>
<nature>org.eclipse.jem.workbench.JavaEMFNature</nature>
二、转换项目
右键项目,Configure-->Convert to Faceted Form,打开后,界面如下:
右击项目,选择属性(properties),找到project facets,点击Runtimes标签选择apache tomcat v6.0。
选中Project Facet中的Dynamic Web Module及Java和JavaScript三项,一般选的是Dynamic Web Module版本是3.0,然后点击ok。
三、调整项目结构
接下来观察我们的项目结构,多了一个web content目录
虽然此时我们可以发布到tomcat中,但这不符合maven的结构,我们还要做如下修改
把上图WebContent下面两个目录 META-INF ,WEB-INF 直接剪切到src/main/webapp目录下,并删掉WebContent目录,那么现在的项目结构如下图:
四、修改项目部署发布路径
右键项目,属性(Properties)-->Deployment Assembly,删除test两项以及WebContent,因为test是测试时使用,并不需要部署
五、添加src/main/webapp及Maven Dependencies的部署路径
点击add,选择Folder -- 〉 next
在src下找到webapp目录,然后finish
最后一步,我们要把当前的build path 指向 Maven Dependency, 直接点击add,选择Java Build Path Entries 然后next
然后再点击finish,完成maven web项目的转换,此时即可以把该项目部署到tomcat上。
完成后如下图:
至此一个基于maven的webapp就建立好了,并可以直接从eclipse中发布到tomcat中