myeclipse有一個很好的功能,就是開發web項目的時候,以debug的形式啓動tomcat服務器,當你修改java類中的方法中的內容(注意只能是方法中的內容,若是添加類的屬性,或是添加方法,則不適用)的時候,或是修改項目中js(好比extjs)文件的時候,myeclipse會自動把修改的內容,部屬到tomcat中,刷新頁面就能夠看到修改的效果,很是方便,而不用頻繁的關閉tomcat,發佈項目,啓動tomcat這種費時無聊的操做。可是最近在開發的過程當中發現myeclipse的這種功能失效了,本身百思不得其解,不經意間回憶起在svn上更新代碼的時候,同時也更新了兩個文件:.classpath和.project文件,因爲只是作開發工做,對這種不經常使用的文件根本就沒往內心去。而後,我就想問題是否是出在了這兩個文件上,結果我上網查了一下,果然是這兩個文件的事兒。html
我用的是myeclipse8.5,在myeclipse中不能直接看見這兩個帶點(.)的文件,可是咱們能夠在工做空間中看到這兩個文件。關於這兩個文件的介紹我是看了百度文檔裏的一片文章,文檔的網址是:http://wenku.baidu.com/link?url=vuA0uS2N3tSKQL4RRqt1sGu7dL_zUSP1_V_VrWfMN2Tm7qrL07b214zMkZax2Ac1qfpj9FZqog0tZyRcPMsLR0dAbYUKkccIhkLRApHfj2_ 。你們能夠本身閱讀,在此很少作介紹。java
用文檔編輯器(ue)打開.classpath文件,內容以下:web
<?xml version="1.0" encoding="UTF-8"?>tomcat
<classpath>服務器
<classpathentry kind="src" path="src"/>eclipse
<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.6">編輯器
<attributes>svn
<attribute name="owner.project.facets" value="java"/>ui
</attributes>url
</classpathentry>
<classpathentry kind="con" path="com.genuitec.runtime.library/com.genuitec.generic_6.0">
<attributes>
<attribute name="owner.project.facets" value="jst.web"/>
</attributes>
</classpathentry>
<classpathentry kind="con" path="org.eclipse.jst.j2ee.internal.web.container"/>
<classpathentry kind="con" path="org.eclipse.jst.j2ee.internal.module.container"/>
<classpathentry kind="lib" path="WebRoot/WEB-INF/lib/ant-contrib.jar"/>
<classpathentry kind="lib" path="WebRoot/WEB-INF/lib/shinow-framework-3.0.0.jar"/>
<classpathentry kind="output" path="WebRoot/WEB-INF/classes"/>
</classpath>
根據百度文檔介紹,有以下詳細信息:
output屬性的值會隨着右鍵工程名稱àPropertiesàJava Build PathàSourceàDefault output folder的值改變而改變(這兩個地方的值是一一對應的,改其中一個另一個就會跟着改變)。好比把Default ouput folder的值改爲html/WEB-INF/classes則這個文件也會隨着改變path=」html/WEB-INF/classes」,另外會在左邊的工程裏自動生成一個沒有web.xml文件的html文件夾,刪不了,刪了自動建立。
關鍵就在這裏,上面的意思是,output屬性,指定了myeclipse每次編譯項目時生成的編譯文件存放的目錄。默認路徑是:WebRoot/WEB-INF/classes,而myeclipse每次向tomcat自動部署的文件也默認是WebRoot下的文件。因此在你什麼都不作的默認狀況下,myeclipse中在tomcat已debug模式運行的時候,會自動把你修改的內容部署到tomcat服務器,不用重啓,直接刷新頁面就能夠看到修改的效果。可是,個人項目的output屬性被人修改了,path指定到了別的目錄,所以每次myeclipse就不會把你修改的東西自動部署到tomcat了。當我把output屬性的path值改爲正確的時候,個人myeclipse又恢復了自動部署修改內容的功能。
注:本身文筆較差,寫的原創很少,文字繁亂的地方還請勿噴。關鍵是記錄一下,但願能幫助你們,也加深本身的記憶。