隨著項(xiàng)目越來越大,你的ANT腳本變得越來越臃腫,越來越依賴antcontrib來實(shí)現(xiàn)構(gòu)建邏輯?不想放棄對(duì)構(gòu)建過程和產(chǎn)出做精細(xì)的控制?恨不得自己寫ANT Task?
等一等,在你考慮轉(zhuǎn)向Maven或者真正卷起袖子開始研究ANT Task的API之前,先聽我向你推薦Ruby/JRuby。相信我,也許這才是你真正需要的。
在我看來構(gòu)建腳本最主要的要求是表達(dá)能力和控制能力,表達(dá)能力是我們應(yīng)該能夠很方便的告訴它我們要它做什么,而控制能力是我們告訴它如何去做,除了必要的
構(gòu)建命令的參數(shù)、依賴關(guān)系之外,它應(yīng)該能夠理解我們其他一些特殊要求。在項(xiàng)目相對(duì)簡單時(shí),ANT的XML格式的"腳本語言"能夠比較好的表達(dá)構(gòu)建者的要
求,至少比純Java的方式更加簡單清晰,于是幾乎從它誕生之日就成為Java領(lǐng)域當(dāng)仁不讓的頭號(hào)構(gòu)建工具。但是ANT也有它不夠用的時(shí)候,尤其在控制能
力上,為了實(shí)現(xiàn)實(shí)際使用中越來越復(fù)雜越來越精細(xì)的對(duì)構(gòu)建過程和產(chǎn)出的要求,ANT的使用者們開始對(duì)ANT進(jìn)行擴(kuò)展,最具影響力的"非官方"擴(kuò)展可能就是
antcontrib了,很多實(shí)際Java項(xiàng)目的構(gòu)建文件中我們都能夠找到它的影子。但是一堆taskdef和
可以看到幾乎都是我們熟悉的ANT Task,只是更加緊湊更加靈活,一旦掌握了最最基本的Ruby語法,用它寫出功能強(qiáng)大的構(gòu)建腳本可以說是分分鐘搞定。