当前位置: 代码迷 >> Web前端 >> maven+eclipse3.7+web工程开发+tomcat7.0搭环境的一些经验
  详细解决方案

maven+eclipse3.7+web工程开发+tomcat7.0搭环境的一些经验

热度:717   发布时间:2013-02-24 17:58:56.0
maven+eclipse3.7+web工程开发+tomcat7.0搭环境的一些心得
    开头第一句话,过程真的很累,现在还存在一些细节问题。因为我自己做了私服搭自己的仓库,所以,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里面轻松定位到开发源码的路径,请大家给予下指导,我还在纠结这个问题。
  相关解决方案