我在Eclipse中設置了Google App Engine項目。我添加了一個根級文件夾來包含我的項目的庫。我將所有這些庫添加到我的項目的構建路徑。代碼編譯沒有任何錯誤。當我運行該項目時,我得到啓動錯誤NoClassDef錯誤。當我手動將這些庫添加到war目錄的lib文件夾時,這些錯誤消失。未被Eclipse部署的引用庫
爲什麼Eclipse不在我的構建路徑上爲我部署庫?我是否需要爲Eclipse運行一個構建腳本?一個將我的庫複製到war目錄的lib文件夾的構建腳本?
我在Eclipse中設置了Google App Engine項目。我添加了一個根級文件夾來包含我的項目的庫。我將所有這些庫添加到我的項目的構建路徑。代碼編譯沒有任何錯誤。當我運行該項目時,我得到啓動錯誤NoClassDef錯誤。當我手動將這些庫添加到war目錄的lib文件夾時,這些錯誤消失。未被Eclipse部署的引用庫
爲什麼Eclipse不在我的構建路徑上爲我部署庫?我是否需要爲Eclipse運行一個構建腳本?一個將我的庫複製到war目錄的lib文件夾的構建腳本?
對於標準Java EE項目庫必須在{web-app}/WEB-INF/lib文件夾下。 GAE要求他們也要使用代碼上傳到引擎。
或者你可以使用Maven來定義你的依賴,並部署到GAE
UPDATE:GAE項目遵循標準的Java EE項目結構來構建和部署war文件。約定是你的lib文件夾在{web-app}/WEB-INF/lib中。谷歌插件自動(從插件文檔爲例)產生這樣的結構:
的插件確實允許爲您的「戰爭」目錄更改位置,但您的庫沒有位置,因爲它應該遵循Java EE標準。
GAE有文檔說明這些庫必須在{web-app}/lib下? – stevebot 2011-03-04 20:20:55
我不這麼認爲,但Google Eclipse插件期望它們在那裏。請參閱更新 – 2011-03-04 21:21:18
您可以直接將庫添加到war/lib中,然後右鍵單擊庫將其添加到構建路徑中。
不知道爲什麼它不在構建路徑上部署庫,但我一直在使用Eclipse多年,並一直按照我所描述的方式完成它。然後我通過eclipse進行部署,不使用構建腳本。
當然,但爲什麼Eclipse不會將它們添加到該目錄對我? – stevebot 2011-03-04 20:19:49
如果沒有添加到lib文件夾庫在同一個工作區正在開發中,我會建議啓用「應用模塊」,在庫項目的項目屬性方面。有時,即使部署程序集和其他所有部分配置正確,Eclipse也不會將jar複製到WEB-INF/lib文件夾中。
Google App Engine是否使用Eclipse WTP工具進行Web項目支持,還是推出自己的解決方案?如果它是WTP,那麼有一種簡單的方法可以獲得打包在WAR中的任意構建路徑條目,而無需將jar放入WEB-INF/lib中。讓我知道,我會記錄。 – 2011-03-04 22:27:34