eclipse中tomcat發(fā)布失敗,clean出錯(cuò)不妨來看看

我們都知道,在一個(gè)典型的Maven項(xiàng)目中,編譯后的class文件默認(rèn)是放在targert/classes目錄下的。但是我今天碰到一個(gè)比較奇怪的問題,在Eclipse中我通過import exsiting maven projects的方法,導(dǎo)入了2個(gè)maven的project,一個(gè)是非web project,另一個(gè)是web project。 在web project的target classes中,并沒有我們期望的Class文件,所以部署到Eclipse的tomcat中時(shí),在WEB-INF/classes中也沒有對應(yīng)的Class類??赡艿脑蛴腥缦露鄠€(gè)原因,希望大家可以對號入座:

1. 執(zhí)行maven的命令,mvn clean install -DskipTests可以編譯成功,在target/classes中可以看到相關(guān)的Class文件,但是如果在Project/Clean中clean相關(guān)的Project時(shí),還需要重新使用mvn clean install -DskipTests重新生成Class文件(target/classes會被刪除)

2. 執(zhí)行mvn eclipse:clean eclipse:eclipse命令,并刷新后可以看到該Maven的Project變成了一個(gè)真正的常規(guī)的java的web project(在Project的icon上后有一個(gè)小圓球),這時(shí),即使是使用Project/Clean后,也會在target/classes中重新自動生成Class類文件。(原因是一般的eclipse的項(xiàng)目空間有.project和.classpath兩個(gè)文件.執(zhí)行eclipse:eclipse就是讓maven的eclipse插件把.classpath內(nèi)的jar引用地址重新更新一遍. eclipse:clean就是刪除所有eclipse項(xiàng)目文件再用eclipse:eclipse重建。)

但是你可能會碰到一個(gè)更加嚴(yán)重的問題,就是在Eclipse的Tomcat的wtpwebapps目錄中不會有該web項(xiàng)目,換句話說,就是該項(xiàng)目不能被成功的部署到Eclipse的Tomcat中,這很有可能的原因是Deployment Assembly(程序部署集)或者是Project Facets屬性存在問題,參照該篇博文以解決怎樣設(shè)置Project Facets或者是Deployment Assembly,我碰到的問題是Deployment Assembly屬性不存在,當(dāng)我參照該博文(http://josh-persistence.iteye.com/admin/blogs/1926808)將Deployment Assembly配置成功后,部署也成功了。

另外除了上面我碰到的原因之外,實(shí)際開發(fā)中,你有還可能存在如下的原因:

在開始之前,查看Eclipse的problems view,里面可能會告訴相關(guān)的錯(cuò)誤的原因,一般來說,可能有如下幾種情況:

1). 確保 project->build automatically已經(jīng)被選上.

2). ?project->clean..->選第2個(gè)clean select project, 勾上start build immediatelly

3).刪除現(xiàn)在的項(xiàng)目, 重新導(dǎo)入源文件,設(shè)置eclipse為保存時(shí)編譯,然后在保存的時(shí)候就可以自動編譯了

4).如果項(xiàng)目里引了某個(gè)不用的jar包,而那個(gè)包又被你刪了,就會出現(xiàn)不報(bào)錯(cuò)但怎么也編譯不出來class文件的情況,可以把所有包都刪除,然后一個(gè)一個(gè)的再引入(需要的),不要一下子把所有包都引入來,沒用的可能會引起不良后果.

5). 想刪掉某個(gè)class文件重新生成,刪除class文件后,但classes目錄下的文件夾被其它程序打開,比如SublineText。此時(shí)編譯也不會通過,在problems下可能會提示“con''t delete classes ……”。關(guān)掉其它程序重新編譯即可。

6).remove掉 JRE System Library,重新導(dǎo)入即可編譯。

7).把build path中所有包都remove掉。然后又add jars,add libraries把需要的加進(jìn)去。

8).project->properties->java build path->source->.../WEB-INF/src的output folder不要默認(rèn),編輯讓它指向../WEB-INF/classes然后重新點(diǎn)擊build工程即可自動編譯。

9).如果你的項(xiàng)目是CVS進(jìn)行版本控制的項(xiàng)目,查看工程下面是否缺少了work目錄,由于CVS控制時(shí)不把work加如版本,所以 checkout后沒有這個(gè)目錄,要手工加上有的工程就能自動編譯了

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • Spring Cloud為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見模式的工具(例如配置管理,服務(wù)發(fā)現(xiàn),斷路器,智...
    卡卡羅2017閱讀 136,593評論 19 139
  • Spring Boot 參考指南 介紹 轉(zhuǎn)載自:https://www.gitbook.com/book/qbgb...
    毛宇鵬閱讀 47,275評論 6 342
  • 當(dāng)前,JVM生態(tài)圈主要的三大構(gòu)建工具: Apache Ant(帶著Ivy) Maven Gradle 對于剛開始接...
    清楓_小天閱讀 5,986評論 1 13
  • 在原基礎(chǔ)上進(jìn)行漫畫化創(chuàng)作,這是最基礎(chǔ)也是最考驗(yàn)作畫者功力的一個(gè)步驟。因?yàn)橹挥凶鳟嬚吒鞣矫娑纪晟疲拍軈f(xié)調(diào)這些能力從...
    覃唱閱讀 453評論 2 5
  • 打開淘寶網(wǎng)頁想讓琳瑯滿目成為今夜的笙簫 想讓靈魂就此安歇 不再流浪 沿著指縫滲漏的余光 偷偷涂抹此刻的心情 想讓遠(yuǎn)...
    流浪貓70s閱讀 109評論 0 0

友情鏈接更多精彩內(nèi)容