2011-01-28 85 views
4

構建我們有非常定製的Ant構建文件爲我們的項目,基本上做到這一點:策略使用Ant在Eclipse

  • 一些預編譯的工作(如代碼生成)
  • 編譯Java代碼
  • 一些編譯後的工作(例如,將文件複製到包含在jar文件中的類目錄;建立jar文件,將文件複製到其他地方,這樣的Tomcat挑選他們)

目前,我們的ant集成包括告訴Eclipse運行「做它所有」螞蟻目標(它自己編譯)。

這看起來很不妥當,因爲ant正在編譯而不是Eclipse,Eclipse編譯器會生成更好的錯誤消息。目前還不清楚Ant構建還是默認的Java構建應該先運行。當項目中的任何事情發生變化時,我們需要告訴螞蟻目標基本上運行。這基本上導致螞蟻在每次保存時運行整個機器。這很慢。 (如果我們沒有編輯代碼生成器的輸入文件,那麼我們可以跳過運行代碼生成器,並且螞蟻甚至需要很長時間才能確定它不必做任何事情。)

是在這裏遵循策略的建議?

  • 我們是否需要分割的Ant構建成多個螞蟻建設者,每個都有自己的一套監控的資源,其中一些在Java builder的運行時,Java Builder之後再運行其他人呢?
  • 我們應該先運行ant,然後運行Java構建器,反之亦然?什麼應該是刷新設置?
  • 我們想告訴Eclipse重建其他人觸摸的類文件嗎?

感謝您的任何建議。

回答

0

你可能會發現,你並不需要爲你的本地開發工作運行Ant構建。您應該讓Eclipse負責編譯代碼並部署到本地Tomcat實例。在部署到共享開發環境時保存Ant構建。

當然,你需要調用一些東西來運行代碼生成。但我猜你不需要經常這樣做。您可以創建一個Eclipse啓動配置來運行特定的Ant任務來生成代碼並將其添加到您的收藏夾菜單。在需要時手動調用它。

7

委派代工作到Eclipse的最好辦法就是通過Ant構建。 Look here關於如何設置生成器。

在您的build.xml文件中創建2個目標:generate-codecleanup-generated-code

那麼這種方式掛鉤起來的建築工地Targets標籤:

Ant Builder Targets configuration

這將使你的項目很好地應對生成事件。

的下一步是使Eclipse自動編譯生成的來源。

爲此,在項目的根目錄中創建一個名爲generated-src的目錄。這個目錄應該是空的,你應該把它放在你的源代碼管理系統的管理之下。由於會有一些生成的代碼,因此將.xxxignore文件放入此目錄。

一旦generated-src目錄是原地的,使你的項目的源代碼目錄(在Java源標籤構建路徑)

Source directory

最後,但並非最不重要的,你想踢Eclipse的Java編譯器,一旦你已經生成了你的源代碼。爲此,您需要修改您的Ant構建器的Refresh選項卡。

這裏是做它的設置:

Refresh Tab

當您單擊Specify Resources按鈕,確保整個項目的目錄選擇,喜歡這裏:

Selected Resources

這當項目中的任何內容發生變化時,它會啓動ant builder,這可能會或可能不會重新生成源代碼,從而導致java重新編譯。

最後一張截圖。確保兩個build.xml和基本目錄是相對於你的$ {workspace_loc}在Builder的Main選項卡,喜歡這裏(基本上只使用Browse Workspace按鈕):

Builder's Main Tab

一旦做到這一點,轉播generate-codecleanup-generated-code到您的build.xml中的常規目標是您要求進行命令行構建的。通過這種方式,Eclipse和您的命令行構建完成了與代碼生成完全相同的步驟。此外,您的Eclipse版本將完全對您項目的源代碼非常敏感。