为什么使用Gradle而不是Ant或Maven?[闭门]

另一个针对Java的构建工具真正让我明白了什么

如果你使用Gradle而不是其他工具,为什么

我不使用Gradle在愤怒中我自己(到目前为止只是一个玩具项目)[作者的意思是他们到目前为止只在一个玩具项目上使用了Gradle,而不是说Gradle是一个玩具项目-见评论],但我想,人们会考虑使用它的原因是因为蚂蚁和Maven的挫败感。

根据我的经验,Ant通常只写(是的,我知道可以写漂亮的模块化、优雅的构造,但事实上大多数人都没有)。对于任何非琐碎的项目,它都会让人费解,并且会非常小心地确保复杂的构建是真正可移植的。它的命令性质可能会导致在构建之间复制配置(尽管宏在这方面有帮助)

Maven采取了相反的方法,希望您完全融入Maven生命周期。经验丰富的Ant用户发现这一点特别令人不安,因为Maven剥夺了您在Ant中的许多自由。例如,有一个Sonatype博客,列举了许多Maven批评及其回应

Maven插件机制允许非常强大的构建配置,继承模型意味着您可以定义一小部分父POM来封装整个企业的构建配置,单个项目可以继承这些配置,从而使它们变得轻量级。Maven配置非常冗长(尽管Maven 3承诺会解决这个问题),如果你想做任何“不是Maven方式”的事情,你必须编写一个插件或使用hacky Ant集成。请注意,我碰巧喜欢编写Maven插件,但也明白很多人会反对所涉及的工作

Gradle承诺会在Ant和Maven之间找到最合适的位置。它使用常春藤解决依赖关系的方法。它允许约定优于配置,但也包括作为一等公民的Ant任务。它还明智地允许您使用现有的Maven/Ivy存储库

因此,如果您遇到了Ant/Maven的任何一个痛点,那么可能值得尝试Gradle退出,尽管在我看来,您是否愿意用已知问题换取未知问题还有待观察。布丁的证据就在吃的过程中,所以我会保留判断,直到产品成熟一点,其他人解决了任何问题(他们称之为流血边缘是有原因的)。尽管如此,我仍然会在我的玩具项目中使用它,知道这些选项总是好的

发表评论