2014-07-03 47 views
-1

從Apache Ant的引進據說關於Apache Ant的引進一般的事情

爲什麼另一個構建工具時,已經有做,gnumake的,NMAKE,果醬,和其他人?因爲所有這些工具都有限制,Ant的原作者在跨平臺開發軟件時無法忍受。 Make-like工具本質上是基於shell的:它們評估一組依賴關係,然後執行與您在shell上發出的命令不同的命令。這意味着您可以通過使用或編寫您正在使用的操作系統的任何程序來輕鬆擴展這些工具;然而,這也意味着你將自己限制在操作系統上,或者至少是你正在使用的操作系統類型,比如Unix。

我不明白這樣的說法:

「這意味着你可以很容易地通過使用或編寫任何程序,你是在工作的OS延長這些工具」

「當然,這消除了能夠構建shell命令的固有表現力,例如「find . -name foo -exec rm {},」

如果有人能幫助我理解這一點,請。謝謝

回答

1

作爲一個例子,假設我正在開發unix,並且我需要rot13一個充滿祕密的文件作爲我的構建過程的一部分。在make的規則是這樣的:

kfc-spices.rot13.txt: kfc-spices.txt 
    tr 'A-Za-z' 'N-ZA-Mn-za-m' < kfc-spices.txt > kfc-spices.rot13.txt 

隨着文字的區區兩行,我很容易地擴展我的生成系統,通過使用我的OS提供的程序ROT13文件的能力。另一方面,我的構建過程將在沒有提供名爲tr的程序的系統上完全失敗,該程序的行爲如同unix tr

The "granted" line指的是通過編寫java類而不是通過運行OS命令來擴展ant的事實。因此,爲了便於rot13在螞蟻中的文件,你必須write a custom task in java。這是更多的工作,並可能最終變得不靈活。 make示例可以進行簡單修改以做double Rot13。但是可能很難以原始開發人員無法想象的方式使用ant任務。