随着项目越来越大,你的ANT脚本变得越来越臃肿,越来越依赖antcontrib来实现构建逻辑?不想放弃对构建过程和产出做精细的控制?恨不得自己写ANT Task?
等一等,在你考虑转向Maven或者真正卷起袖子开始研究ANT Task的API之前,先听我向你推荐Ruby/JRuby。相信我,也许这才是你真正需要的。
在我看来构建脚本最主要的要求是表达能力和控制能力,表达能力是我们应该能够很方便的告诉它我们要它做什么,而控制能力是我们告诉它如何去做,除了必要的
构建命令的参数、依赖关系之外,它应该能够理解我们其他一些特殊要求。在项目相对简单时,ANT的XML格式的"脚本语言"能够比较好的表达构建者的要
求,至少比纯Java的方式更加简单清晰,于是几乎从它诞生之日就成为Java领域当仁不让的头号构建工具。但是ANT也有它不够用的时候,尤其在控制能
力上,为了实现实际使用中越来越复杂越来越精细的对构建过程和产出的要求,ANT的使用者们开始对ANT进行扩展,最具影响力的"非官方"扩展可能就是
antcontrib了,很多实际Java项目的构建文件中我们都能够找到它的影子。但是一堆taskdef和
可以看到几乎都是我们熟悉的ANT Task,只是更加紧凑更加灵活,一旦掌握了最最基本的Ruby语法,用它写出功能强大的构建脚本可以说是分分钟搞定。