2010-11-23 45 views
3

我正在使用Eclipse Helios。我有一個動態的Web項目,我已經設置了Eclipse來使用Ant Builder來生成一個WAR文件。這一切都很好;如果我更改.java文件,Eclipse會自動通過Ant運行我的build.xml並更新我的WAR。如果我將WAR部署到Tomcat的外部實例,它可以很好地工作。但是,當我告訴Eclipse在Tomcat下運行我的項目時,它不使用Ant構建生成的WAR文件,也不使用我的Ant腳本來生成臨時WAR。我需要Eclipse來部署我的ANT腳本構建的WAR文件,而不是它在內部構建的內容

我知道這是因爲我的build.xml腳本在WAR中的WEB-INF/classes中包含了一些額外的XML配置文件,這些文件沒有在Eclipse推出的WEB-INF/classes目錄中結束。

我似乎無法在Eclipse中發現任何「發佈時使用此WAR文件而不是構建自己的文件」的內容。

另一種方法是通過添加文件列表來告訴Tomcat何時構建WAR,但似乎無法找到這樣做的方法。

我也很好奇Eclipse如何知道要發佈什麼,因爲它顯然忽略了我的build.xml和我以前生成的WAR文件。

回答

6

Eclipse通過查看項目的Web部署程序集選項來部署Web應用程序。您可以通過右鍵單擊該項目並選擇「屬性」,然後單擊「部署程序集」來查看。 Eclipse通常在這裏使用擴展的目錄部署,而不是創建和部署WAR(這是基於正在使用的服務器插件,但我認爲它們中的大多數使用擴展的目錄結構來提高速度)。如果作爲WAR導出,它將創建一個具有相同內容的WAR。

主要有兩種選擇,做你想要什麼:

  • 修改Web部署大會選項,以適應您希望在已部署的應用程序正是

  • 不要使用Eclipse的部署;爲項目的「Builders」選項添加一個「External Ant Builder」(右鍵單擊項目,選擇Properties-> Builders)。然後,您可以在eclipse構建項目時選擇要使用的ant文件中的哪些目標。這些選項之一可以是一個部署步驟

+0

我想我得去用,然後選擇2,這主要是因爲選項1不允許我添加特定的文件,資料夾和檔案。謝謝! – Jay 2010-11-23 21:51:26

0

我似乎無法找到在Eclipse中任何東西,說:「當你發佈,使用,而不是建立自己的這個WAR文件」。

我是IntelliJ用戶,因此請帶上一粒鹽。但是...

右鍵單擊Project Explorer target/foo.war,選擇Mark Deployable。

然後在foo.war文件再次右鍵單擊和運行方式... - >運行服務器...

選擇JBoss的實例。

如果轉到服務器視圖,您現在將在JBoss實例下看到您的WAR文件爲/ proj_root/target/foo。戰爭

哦Eclipse的嘆息......

相關問題