簡體   English   中英

如何在Eclipse中處理Maven WAR覆蓋?

[英]How to handle Maven WAR overlays in Eclipse?

我有一個多模塊Maven項目,它使用WAR覆蓋(堆棧為3深)。 Maven中的一切都很好用,但是我無法從Eclipse中啟動我的WAR,因為它抱怨找不到各種文件。

如何配置Eclipse(和啟動器)以便我可以從Eclipse運行我的WAR而無需先進行Maven安裝? 我應該補充一點,我的Eclipse WAR項目不是動態Web項目......這是我需要做的一部分嗎?

注意:以下問題涉及到主題,但答案表明您必須首先執行Maven安裝,我知道這不可能是正確的,因為有些人在沒有Maven的情況下使用Eclipse。

Maven覆蓋和Eclipse

我也發現這讓我覺得通過香草M2E是不可能的:

http://jira.codehaus.org/browse/MNGECLIPSE-599

我能夠做到這一點,一切都很好。 這是做什么的:

首先,您需要M2E Eclipse插件,這需要Eclipse自動識別和更新Maven依賴項。 它還提供了一個漂亮的圖形POM編輯器。 截至2011年底,M2Eclipse項目由Sonatype捐贈給Eclipse基金會,現在簡稱為M2E 但是,Eclipse Indigo的Java EE版本仍未附帶,必須通過其更新站點單獨安裝

過去,Eclipse和Maven之間的集成有點麻煩。 但是,這個基於Eclipse的新Maven集成現在意識到POM文件中使用了許多Maven插件,並且在IDE環境中只有某些插件的某些目標才有意義。 此外,在IDE內部運行時有意義的目標可能需要特殊配置。 正確處理這個M2E現在支持“連接器”的概念

M2E有一長串特殊連接器,允許它在調用各種mojos(Maven插件目標)時執行“正確的事情”。 要查看Eclipse中可用連接器的列表,請轉到“首選項”對話框,然后選擇“Maven-> Dicovery->打開目錄”。 在項目導入期間在{{pom.xml}}文件中檢測到這些連接器時,應該自動安裝這些連接器。 但是,這需要正確版本的M2E Maven導入向導(Indigo在SR2之前不會有)。

此外,有時這些連接器是錯誤的,我們需要使用夜間或測試版更新站點來獲取最新的修復程序。 如果您有較舊版本或錯誤版本,則需要在升級后刪除並重新導入項目。 出於這些原因,在我看來,在將項目導入Eclipse之前,應手動安裝所有M2E連接器。

M2E-WTP連接器是您需要使用WAR覆蓋器在Eclipse“服務器”的Eclipse啟動器中工作的連接器。 此連接器用於將Maven與WTP集成...從而處理WAR覆蓋,servlet容器設置,Eclipse WTP配置,根上下文設置以及其他一些在Maven WAR模塊中使Eclipse Web工具“正常工作”的事情作為項目導入到Eclipse中。

m2e-wtp連接器的更新站點是: http://download.jboss.org/jbosstools/updates/m2eclipse-wtp/http://download.jboss.org/jbosstools/updates/m2eclipse-wtp/

添加此M2E-WTP站點並安裝連接器。 但請注意,M2E和M2E-WTP連接器都不會將覆蓋WAR的依賴關系放入最終的WAR中。 您必須通過向最終的WAR pom.xml添加所需的依賴項來完成此操作。 我不知道為什么工具不這樣做,但他們沒有 - 所以只是克服它。 ;-)

此時,我還建議通過{{Help-> Check for Updates}}進行全面更新。 完成此操作后,您應該能夠簡單地添加一個Eclipse服務器,單擊您的項目(不是覆蓋項目,而是常規項目)並選擇“在服務器上運行...”。

對WAR或覆蓋WAR的更改將自動發布到您的服務器。 在不重新啟動服務器的情況下發布Javascript更改...您只需在瀏覽器中點擊刷新以查看正在運行的新代碼。

第二次更新 :M2E中存在一個錯誤( https://issues.sonatype.org/browse/MECLIPSEWTP-174 ),這可能導致WEB-INF / lib目錄意外丟失其所有JAR文件。 發生這種情況時,您的servlet應用程序顯然無法啟動。 解決方法是通過單擊服務器上的右鍵並選擇“清除”來清理服務器。 請注意,僅清理工作目錄不會還原這些丟失的JAR。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM