我不使用Gradle的愤怒自己(只是一个玩具项目到目前为止)[author means they have used Gradle on only a toy project so far, not that Gradle is a toy project - see comments],但我要说的原因,人们会考虑使用它将是因为蚂蚁和Maven的挫折.
根据我的经验,Ant通常是只写的(是的,我知道可以写beautifully modular, elegant build,但事实是大多数人不这样做).对于任何不平凡的项目,它都会变得令人费解,并且会非常小心地确保复杂的构建是真正可移植的.它的命令性可能导致在构建之间复制配置(尽管宏在这里可以有所帮助).
Maven采取相反的方法,希望您完全集成到Maven生命周期中.有经验的Ant用户发现这特别discord,因为Maven删除了您在Ant中拥有的许多自由.例如,有一个Sonatype blog,它列举了许多Maven的批评和他们的回应.
Maven插件机制允许非常强大的构建配置,继承模型意味着您可以定义一小部分父POM,将整个企业的构建配置封装起来,单个项目可以继承这些配置,从而使它们变得轻量级.Maven配置非常冗长(尽管Maven 3promise 会解决这个问题),如果你想做任何"不是Maven方式"的事情,你必须编写一个插件或使用hacky Ant集成.请注意,我碰巧喜欢编写Maven插件,但也明白很多人会反对所涉及的工作.
Gradlepromise 在Ant和Maven之间找到最合适的位置.它使用Ivy的方法来解决依赖关系.它允许约定优先于配置,但也包括作为一等公民的蚂蚁任务.它还明智地允许您使用现有的Maven/Ivy存储库.
因此,如果您遇到了Ant/Maven的任何一个痛点,可能值得try 一下Gradle,尽管在我看来,您是否愿意用已知的问题来换取未知的问题,这还有待观察.不过,布丁的证据在于食用,所以我会保留判断,直到产品稍微成熟一些,其他人已经解决了任何问题(他们称其为流血是有原因的).不过,我仍然会在我的玩具项目中使用它,知道这些选项总是很好的.