`

配合m2eclipse,改造tomcatPluginV321根据maven的依赖自动热部署

阅读更多

用m2eclipse创建的工程,果然非常好用,强烈推荐
用tomcat插件进行热部署,也挺好用,就是用maven管理项目后,project中不再有jar包了,所以要用tomcat插件的devLoader去选择启动时要加载的jar包,有几个问题不爽:
1.插件的.tomcatplugin里面配置的jar包是绝对路径,由于项目组中每个人的本地maven库目录设置得不一样,不能作为项目配置文件放到svn上,需要每个人自己设置
2.改变了pom中的依赖,也要在tomcat插件中重新配置需要加载的jar包
3.servelet.jar和jsp.jar在maven中是provided,还有一些test和system包不应该包括进去,需要从tomcat插件中一个个去掉,每次重新配置的时候看得眼睛发酸

花了一个上午把tomcat插件的源码小改了一下,解决了上述问题,只要在插件配置中选择了use Maven,启动tomcat时会按照maven中的依赖配置devLoader需要加载的jar包,并且过滤掉provided,test和system jar包
1.classpath记录在项目根目录下的.mvnclasspath中
2.是调用mvn dependency:list获取的依赖列表,所以第一次执行时可能会下载插件,比较慢,最好在命令行上先执行一次,否则eclipse死在那里看着有些心慌
3..mvnclasspath里有一个生成时间属性,如果这个时间比pom.xml早,则会重新计算依赖jar包。没有直接比较.mvnclasspath和pom.xml的最后修改时间,是因为这样从mvn checkout到一个新环境一定会重新计算

简单测试了一下,没发现bug,给大家试试吧,改过的源码、tomcat.jar包和原插件一并提供
用tomcat.jar替换掉原插件中的tomcat.jar即可
分享到:
评论
3 楼 wf_chn 2011-07-05  
最新的m2e-wtp 0.12可以支持这种热部署了,不过要多几个垃圾文件夹
2 楼 wf_chn 2011-06-30  
太NB了,我用eclipse3.6里面有个deployment assembly,他把maven dependency一股脑的全发布过去了,难不成得去改这个
1 楼 ephon 2011-03-18  
你太nb了 太造福了

相关推荐

Global site tag (gtag.js) - Google Analytics