Gradle:下一代Maven?

Hi,你们好,这是我在这里写的第一篇文章,希望自己能坚持更新哦。刚好最近在看Gradle,那么我想,就从ta开始吧。

Gradle是什么?

Gradle是一个基于Apache Ant和Apache Maven概念的项目自动化建构工具。它使用一种基于Groovy的特定领域语言来声明项目设置,而不是传统的XML。

我为什么会使用Gradle

第一次使用Gradle,是当时我在学校读书因为一个项目而需要学习Android时的事情。有一些Android项目是用Gradle来管理的。那时候使用的ide是Android Studio。 虽然才过了一年多,但是因为我毕业后再也没有参与过Android的项目,也没有再使用过Gradle来管理项目,所以关于Gradle的很多东西,也已经记不得了。

由于最近工作中的一个项目,我又接触到了Gradle,现在我把自己对Gradle的一些理解写在这里,希望能对一些人有所帮助。:P

Gradle是怎么工作的

关于安装Gradle,我不准备在此写下,去官网看下安装的说明,应该不是很难的事情。

Gradle通过Grovvy来编写配置,这和其他基于XML的工具来说,是有很大的灵活性的,因为在很多时候你要通过XML来实现一些逻辑操作是相当麻烦的。而使用一门编程语言来实现这些逻辑操作就没有那么麻烦了。XML更适合机器阅读,当你有大量依赖且需要排除依赖的时候,你的XML简直没法看了。

当然如果只是简单的替换掉XML,我们可能不需要有Gradle,因为SBT也做到了 :P

Gradle取消了依赖仓库的概念,特别是在管理项目的多个模块的时候会非常友好。

Gradle与Maven的比较

一种较为主流的观点是,在JVM平台,Ant是第一代的项目管理工具,Maven是第二代,而Gradle是下一代Maven。

为什么Gradle能有如此高的评价呢,对比Maven,我想可能由于以下几个方面的优点:

  • 不使用XML来申明依赖,更加简洁。
  • 可以使用Groovy来编写task,比起Maven的Plugin更加灵活和方便。
  • 项目的多模块之间的管理更加方便。
  • 使用task,可以隔离不同的操作。

根据Gradle官网上的介绍Gradle与Maven的性能对比,Gradle的性能比Maven高出很多,这在一些大型项目中,是不得不考虑的因素之一。

但是目前使用Maven的人还是很多,从Maven转换到Gradle,从这些优点来看,考虑到这不是很低的学习成本,是不是动力不足呢?很多人总是习惯现有的东西,需要别的人来推动他。