2012-01-15 60 views
1

我目前正在研究一個小程序,該程序應該註釋掉一些用於測試的代碼。 我希望它在編譯器之前自動運行,編譯發行版本,另一個程序會在編譯結束後返回代碼。創建一個在Eclipse編譯之前和之後運行的程序

該程序工作我唯一缺少的是將其添加到生成過程。 感謝所有的幫手!

回答

3

請勿使用Eclipse構建應用程序的發行版。使用Ant,Maven或其他比Eclipse更靈活的構建工具,不需要GUI,可以由持續集成服務器編寫腳本並使用它。

所有這些工具都應該很容易地用來在構建過程中包含預編譯和後編譯任務。

這就是說,你可以只使用一個公共靜態最終布爾常量FOR_TEST,並且包括在

if (TestUtil.FOR_TEST) { 
} 

你將不得不只是一個地方的代碼更改爲擁有所有的所有的測試代碼從編譯版本中刪除測試代碼。無需一個複雜的Java程序來做到這一點。

或者,您可以讓所有測試代碼在發佈的版本中,並在使用系統屬性進行測試時將其激活。這甚至不需要任何預編譯/後編譯階段,並且可能具有可忽略的成本。

+0

但是它會編譯上面的代碼嗎?我知道在C/C++編譯器中有些東西被編譯器忽略,但我不太確定Java。我有一個類將代碼添加到日誌中,它像下面這樣:Log.l(「stuff」);並且我想在生產中沒有調用,所以問題是在Log類中添加這個會在用戶使用我的程序時阻止一些重新計算? - 它與Android相關,因此我想盡可能簡化設備。再次感謝! – Mashiah 2012-02-21 08:29:42

+0

如果TestUtil.FOR_TEST是一個評估爲false的布爾常量,那麼if塊中的代碼(如我所說)將從編譯的類中移除。它必須在語法上正確並且可以編譯,但編譯器不會在字節代碼中包含if塊。 – 2012-02-21 09:18:20

3

在Eclipse中,右鍵單擊一個項目,選擇Properties → Builders,然後單擊新建。您可以添加Eclipse構建項目時將觸發的Ant腳本或命令行。您也可以在同一個對話框中控制構建者的順序。

但是,我同意JB Nizet –讓Ant或Maven構建項目有很多好處。

相關問題