开头第一句话,过程真的很累,现在还存在一些细节问题。因为我自己做了私服搭自己的仓库,所以,MAVEN导包以及确认依赖构件是否完善是件十分繁琐和麻烦的事情,建议:所有用到的JAR最好去官方JAKATA上去下载
1. MAVEN3的搭建这里不叙述了,如何配置依赖这个百度上已经漫天飞舞了。但是这是必须的。
2. MAVEN工程转普通的WEB工程,需使用PROJECT FACETS,使用之后多了个webcontent目录,里面还有以前常见到的MENT-INF 和WEB-INF目录。
3. 在ECLIPSE里面加入服务器的时候,3.7的ECLIPSE会把默认的部署目录设置成wtpwebapps,如果你的WEB工程放在了这个目录下,那么你的TOMCAT在启动时,不会去找那个目录的,容器依然去找webapps目录。这是一般情况。如果你在ECLIPSE里面启动TOMCAT,是ECLIPSE根据其默认设置的wtpwebapps部署路径,自动在其conf/server.xml的HOST配置里面加上一段
<Context docBase="%CATALINA_HOME%/wtpwebapps/project_name" reload="true" />,这段信息个人猜想应该是ECLIPSE为其加的。TOMCAT启动时候,默认是去寻找其根目录下webapp目录加载工程信息。网上有说到热部署的方式,就是在server.xml里面Host标签下加入自己的<Context docBase>配置,但是,我发现,ECLIPSE往server.xml里面增加Context时,会先删除原先Host下所有的Context信息。
4. 关于编译。如果是MAVEN的WEB工程即使转换成了普通的WEB工程,但是源码的编译目录还是会放在target目录下工程里的CLASSES文件夹。这里给出我的做法:在自己工程里的POM.xml文件里面加入如下信息:
<sourceDirectory>src/main/java</sourceDirectory> <resources> <resource> <directory>src/main/resources</directory> </resource> </resources> <outputDirectory>src/main/webapp/WEB-INF/classes</outputDirectory>,如果大家的配置文件不是放在web-inf下面,而是选择classpath路径下的,请务必看清此建议。编译时每次使用maven的compile指令编译,特别每次更改完配置文件的时候。而如果使用ECLIPSE里自带的编译功能,会出现代码编译成功,但更改的配置文件不会去更新,这个问题可能涉及到页面部分的改动。
5. 保险起见,在工程的目录下的.setting/org.eclipse.wst.common.component文件里,添加一个<wb-resource deploy-path="/" source-path="/src/main/webapp/"/>,如果已经有就算了。这样,你在手动往src/main/webapp/web-inf/lib目录下加入JAR包时,eclipse会显示在Web App Library下,而不会出现和Web App Library目录同级,导致整个工程目录冗长。
6. 在eclipse中debug方式启动tomcat调试代码时,流程走到断点时,会报找不到SOURCE,毕竟不是MYECLIPSE。解决方法是,右击工程名,选择“Debug as”点击"Debug configuration",在弹出框里选择SOURCE标签,点击“add”按钮,添加类型选择“Java Project”,指向你现在在用的工程,如图:
这样你就可以像在myeclipse里面一样做DEBUG调试了。
现在我这里还存在一个环境问题,在eclipse里debug方式启动tomcat,在调试断点的过程中,eclipse不会去找工程里做开发的源码,而是去找反编译的路径,无法做到myeclipse里面轻松定位到开发源码的路径,请大家给予下指导,我还在纠结这个问题。