??????在Tomcat下開發(fā)一些項(xiàng)目時(shí),不可避免的會用到針對Tomcat的插件來進(jìn)行調(diào)試,目前我接觸到的插件有如下三種,雖然它們都能對工程進(jìn)行調(diào)試,它在一些其它功能上面卻有其區(qū)別
????? Myeclipse:這個(gè)是最強(qiáng)大的Eclipse插件,差不多什么都有,是一個(gè)一站式的解決插件。
????? WTP(Web Tools Platform):是由Eclipse自己開發(fā)的插件。
????? TomcatPlugin(sysdeo):最老牌的Tomcat插件,也是最好用的。
?
- Myeclipse插件對Tomcat的支持看起來應(yīng)該是最好的,特點(diǎn)是熱部署。不管是對Servlet的修改,還是對web.xml的修改都可以。卻可以做到,哪個(gè)變了,就加載哪個(gè)。它可以很方便的把你的工程直接發(fā)布到Tomcat中去,或者是以war的形式發(fā)布過去。
- WTP(Web Tools Platform)
:相對MyEclipse于,WTP則實(shí)現(xiàn)了部署的透明化,Myeclipse在啟動Tomcat后,要你通過myEclipse把工程部署到Tomcat下,它會對你的Tomcat目錄下添加一些文件。但是WTP則對你的Tomcat不會有任何修改。
但我也發(fā)現(xiàn)了使用WTP 部署Web工程時(shí)的一個(gè)問題,對web.xml文件的修改不會自動的被重新加載,但更改Servlet會重新加載Servlet,并且同時(shí)重新加載web.xml。
也就是你想重新加載web.xml,你只有佯裝修改一個(gè)Servlet,才能觸發(fā)重新加載web.xml。不知道以后的版本會不會修改這點(diǎn)。 - TomcatPlugin(sysdeo):最老牌的tomcat插件了,相對來說在Tomcat調(diào)試領(lǐng)域也是最好用的了,不過它有點(diǎn)與WTP一樣,無法自動加載web.xml變化。但它也有它的絕招,是另外兩個(gè)插件不能比的。它有兩種支持調(diào)試的方式:
- 建立Tomcat工程,這時(shí)可以使用熱部署,tomcatPlugin(sysdeo)由于它并不真正的部署工程,使用TomcatPlugin(sysdeo)添加一個(gè)工程時(shí),實(shí)際上在Tomcat\conf\Catalina\localhost目錄下添加了一個(gè)文件,當(dāng)Tomcat啟動時(shí)就會加載這個(gè)工程,這時(shí)當(dāng)然也可以調(diào)試。
- 另外一種支持調(diào)試的功能是其它兩個(gè)插件沒有的,比如你的工程是通過ANT布置到Tomcat下去的,你的目錄結(jié)構(gòu)無法滿足WTP與Myeclipse的要求,這時(shí)你沒有辦法來使用這兩個(gè)插件來進(jìn)行調(diào)度,但是使用TomcatPlugin卻可以。你只要在設(shè)置window->preferences->tomcat->soure path即可。
個(gè)人Blog:? http://www.aygfsteel.com/itspy
插件的適應(yīng)環(huán)境:
???如果沒有特別的原因,應(yīng)該盡量選擇TomcatPlugin(sysdeo)。
- 如果是一個(gè)全新的項(xiàng)目,上級完全放權(quán)了,你可以使用myEclipse與WTP,因?yàn)樗軐?shí)現(xiàn)熱部署,調(diào)度修改代碼十分方便。但它們相對Tomcat來說,一個(gè)是侵入式的,一個(gè)卻是無侵入的。你可以針對這個(gè)特點(diǎn)來在兩者之間進(jìn)行選擇。
- 如果是一個(gè)已經(jīng)有一定歷史積累的工程,或者是無法對目錄結(jié)構(gòu)進(jìn)行控制的工作,這時(shí)推薦使用使用TomcatPlugin(sysdeo)。
因?yàn)閙yEclipse與WTP對工程對目錄結(jié)構(gòu)都有一定的要求,因?yàn)樗鼈円压こ滩渴鸬絋omcat上去,所以對工程目錄結(jié)構(gòu)上都有自己的要求。比如在哪放置WEB-INFO,在哪個(gè)目錄放置源文件,并且兩個(gè)插件之間的工程無法形成兼容與共享。
但是TomcatPlugin(sysdeo)只是充當(dāng)一個(gè)外掛來啟動Tomcat,并把指定的源代碼與Tomcat里面運(yùn)行的項(xiàng)目關(guān)聯(lián)起來,進(jìn)行調(diào)試。所以它對目錄結(jié)構(gòu)沒有要求,比較適應(yīng)于無法對目錄結(jié)構(gòu)進(jìn)行控制的項(xiàng)目,一個(gè)普通的Java工程即可以。
?個(gè)人Blog:? http://www.aygfsteel.com/itspy