2011-10-06 73 views
37

什麼是構建的目的,自動在EclipseProject- >Build Automatically選項?礦將永遠被檢查。但是,當我有一些Java代碼的變化,我仍然需要做一個完整的構建。我被告知應該經常檢查。我沒有看到這樣做的好處。請一些身體解釋。目的Eclipse中的「自動構建」選項

回答

27

是的,你仍然需要做一個構建 - 但是當你保存的時候會自動完成(不是像Ant構建那樣的外部構建,而是「內部」構建)。如果你不想建立保存,你可以取消選中該框。我相信,讓它自動生成會讓一些人緊張。

+0

你通過保存構建的是什麼?構建與ANT構建有何不同 – pushya

+3

@pushya:通常Ant構建可能會自動運行測試,或者構建到一個單獨的區域以備部署,可能會構建jar文件,可能在每次構建之前清理。內部構建通常只是在輸出目錄中創建類文件,並複製資源。特別是,這對於單元測試等快速轉換非常有用 - 但是如果您想要可重複的,從頭開始,全部測試運行等構建,那麼您將需要使用類似Ant的東西。 –

+0

@JonSkeet - 當您運行監控代碼更改的嵌入式Web應用程序服務器時,自動生成的設置往往會對性能產生負面影響。頻繁的代碼更改會導致重複的服務器重新啓動和最終的IDE崩潰。 – Perception

0

如果選中「自動構建」,IDE將在您修改和保存文件時自動編譯Java代碼。這並不意味着它將完全構建和打包整個解決方案,就好像您要部署它一樣,例如您正在WAR模塊上的Web項目中工作。它基本上只是編譯你的代碼。

+1

最後一句話不對,對於WTP項目,它將重新部署您的應用程序到服務器。 –

+0

僅當您將其設置爲自動部署時也是如此。 – nitind

20

Eclipse有一個很好的答案on their website

你有兩種工作模式:自動建立模式和手動構建模式。默認情況下,您處於自動構建模式,Eclipse負責自動編譯源文件。每次更改工作區中的文件時(例如保存編輯器),構建都會在後臺自動進行。自動構建非常方便,因爲它意味着問題視圖,二進制文件等始終處於最新狀態。缺點是在大型工作區中,如果要在具有大量下游依賴項目的項目中更改文件,自動構建可能非常耗時。

如果自動構建時間過長並且干擾正在進行的開發,則可以將其關閉。一旦處於手動構建模式,用戶就可以完全控制構建何時發生以及構建什麼。可隨時調用「項目」>「全部生成」(Ctrl + B)來觸發自動構建自動執行的操作。這允許您在調用構建之前構建更大的一組更改(Eclipse會記住哪些文件已更改,以便在您請求構建​​時不需要執行比所需更多的工作)

請注意,當他們說「自動生成模式」,他們的意思是,如果你已經檢查了「自動構建」,當他們說「手工打造模式」,他們說你沒有「自動構建」檢查。

+0

「每次更改工作區中的文件時,構建都會自動發生在後臺(例如,保存編輯器)。」 - 清晰和簡單 – luigi7up

1


對於C/C++用戶被告知(fromhelp.eclipse.org)

默認情況下,Eclipse工作臺被配置爲自動構建項目。但是,對於C/C++開發,您應該禁用此選項,否則每當(例如)保存對生成文件或源文件的更改時,都會重建整個項目。點擊Project> Build Automatically並確保Build Automatically菜單項旁邊沒有複選標記。

1

項目 - 禁用自動構建選項並不總是意味着自動構建關閉。例如,「Makegood」測試自動化插件將在觸發自動構建時觸發首選項 - 運行/調試 - 啓動 - (一般選擇)啓動之前構建處於打開狀態。因此,如果需要手動編譯,請將其關閉。

1

還有一個不同之處是:
大多數時候處理JSP時,它會幫助我檢查「自動構建」。它會自動獲取JSP中的更改。
但是,如果您在您的Java類/ XML中進行更改,則需要手動構建。 因爲我使用通過命令提示符在eclipse外運行的resin服務器,所以我更喜歡檢查選項。
當我在eclipse中設置服務器時,我將其關閉並在服務器上使用Publish。

這是我使用的方式,答案是基於我的經驗。

1

有一件事,人們在這裏沒有提及(我也花了一段時間才弄清楚)eclipse構建(無論是自動還是手動)基本上都遵循你在項目的「Java Build路徑「選項卡。因此,當構建源選項卡中包含文件時,當您更改文件時,它將被複制/編譯到爲該目錄/文件指定的輸出文件夾中。