2011-04-09 54 views
20

我有一個Eclipse項目結構看起來是這樣的:的Tomcat會因其他打開Eclipse類ClassNotFound的異常項目

eclipse 
    project a 
    project b 

所有這些項目都是Maven項目。項目B是一個Eclipse WTP項目,包含項目A作爲依賴項。我正在使用m2eclipse插件。

當我部署項目B到Tomcat(所有在Eclipse)它總是拋出錯誤說,它不能從項目A.我能解決的唯一辦法,這是在Eclipse 接近項目A和查找類做一個mvn安裝命令,所以在這一點上項目A被視爲像任何其他依賴項。

我想不必重新打開,然後關閉項目A,每當我對其進行更改時(在此階段相當頻繁)。

我已經嘗試將項目A添加到項目B的構建路徑,但是這似乎並沒有做到這一點。再說一遍,如果我在eclipse中關閉這個項目,它就會像Maven的正常依賴一樣處理。

僅供參考我正在使用Eclipse的Helios版本。項目B是一個春季項目,所以自然Tomcat在進口所有豆類時會掉落。

有沒有人有任何建議?非常感謝。

回答

5

tomcat找不到你的類的原因是tomcat沒有看到eclipse中的項目依賴關係。要解決該問題,可以將項目a的bin文件夾添加到從項目b運行的應用程序的tomcat類路徑中。

-1

類路徑中增加bin文件夾是不是好的選擇,這將SOVE promplem temorarily whot如果部署到另一個系統

所以編譯依賴項目中的類,並把它在Tomcat本身,

我建議使用Apache Ant來做到這一點,請參閱Example

31

如果你去到項目屬性,挑項目「部署大會」,單擊「添加...」,然後選擇「項目」,您可以添加相關的項目和問題應該解決。

+2

Jalkin與運行配置解決方案工作過,但這似乎會更加清晰,謝謝。 – amoebe 2012-11-01 14:13:16

+3

這應該被標記爲正確的答案 – 2012-11-07 23:48:37

+2

未來的讀者,如果此修補程序不適用於您,請不要發瘋。它也不適用於我。 :-( – Sharky 2014-05-13 23:22:18

71

你需要做的是這樣的:

  1. 在Eclipse中去窗口>顯示視圖>服務器>,並呼籲服務器
  2. 在服務器,雙擊該服務器你想
  3. 該打開的選項卡操作應該打開一個標題爲概覽的窗口,其中您選擇的服務器位於TAB中
  4. 在此窗口中選擇:打開啓動配置,然後單擊鏈接。
  5. 在編輯配置窗口中,選擇所謂的Classpath
  6. 在classpath文本框選項卡,選擇行:用戶條目
  7. 現在推題爲右側的按鈕:添加項目
  8. 在出現的項目選擇窗口選擇您希望服務器通過點擊查找的外部項目。
  9. 關閉這些窗口通過點擊應用,然後在適當OK,你的工作了堆棧
  10. 重新啓動服務器在全局窗口

你應該準備好了。實際上只有2分鐘的練習。祝你好運

+1

這正是我一直在尋找的,謝謝! – 2012-09-18 20:14:15

+0

謝謝,這真是太棒了。 – 2013-12-05 19:18:01

+0

這是有效的,我覺得很多程序員都這麼做,但它有效,也許有一天m2e將自動處理項目依賴關係的部署 – Sharky 2014-05-14 00:04:43

5

右鍵單擊添加到容器服務器的Web項目並選擇Maven,然後選擇禁用工作空間分辨率。然後你的依賴項目將開始像任何其他依賴項一樣以jar的形式出現。

右鍵單擊WebProject - > Maven - > Disable Workspace Resolution。

+3

這也適用(只是測試它)。不過,它有一個缺點,就是每次在「項目a」上運行'mvn install'時都會有變化,因爲「項目b」現在取決於您的倉庫中的工件。 – Sharky 2014-05-14 00:11:29

0

簡單的方法:

Run -> Run Configurations... -> Classpath