为什么使用Gradle而不是Ant或Maven?

问题:

另一种针对Java的构建工具真的让我感到意外吗?
如果您使用Gradle超过另一个工具,为什么?

回答:

我自己不使用Gradle的愤怒(只是迄今为止的玩具项目)[author means they have used Gradle on only a toy project so far, not that Gradle is a toy project – see comments],但我会说,考虑使用它的原因是因为Ant和Maven的沮丧。
在我的经验中,Ant通常是只写的(是的,我知道可以写beautifully modular, elegant build,但事实上大多数人都没有)。对于任何不平凡的项目,它变得心灵弯曲,并且非常小心确保复杂的构建是真正便携式的。其必要性可能导致构建之间的配置复制(尽管宏可以在此帮助)。
Maven采取相反的做法,并期望您与Maven生命周期完全集成。经验丰富的Ant用户发现这个特别令人震惊,因为Maven删除了您在Ant中的许多自由。例如,有一个Sonatype blog列举了许多Maven批评及其回应。
Maven插件机制允许非常强大的构建配置,继承模型意味着您可以定义一组小型父POM,为整个企业封装您的构建配置,并且各个项目可以继承这些配置,使其轻量化。 Maven配置是非常冗长的(虽然Maven 3承诺解决这个问题),如果你想做任何“不是Maven的方式”,你必须编写一个插件或使用hacky Ant集成。注意我碰巧喜欢写Maven插件,但是欣赏许多人会反对所涉及的工作。
Gradle承诺打到蚂蚁和Maven之间的甜蜜点。它使用Ivy的方法进行依赖解析。它允许约定配置,但也包括Ant任务作为一流的公民。它也明智地允许您使用现有的Maven / Ivy存储库。
所以如果你遇到任何一个Ant / Maven的痛点,可能值得一试,但是在我看来,如果你不会只是为了知道未知的问题而进行交易,那么还有待观察。布丁的证明是在吃饭,所以我会保留判断,直到产品更成熟一些,其他人已经摆脱了任何扭结(他们称之为出血的缘故)。我仍然在我的玩具项目中使用它,但总是很好的了解选项。

 
 
Code问答: http://codewenda.com/topics/python/
Stackoverflow: Why use Gradle instead of Ant or Maven?

*转载请注明本文链接以及stackoverflow的英文链接

发表评论

电子邮件地址不会被公开。 必填项已用*标注

− 1 = 7