Gradle官网介绍
Build Anything:用Java,C ++,Python或您选择的语言编写。用于在任何平台上部署的软件包。进行单仓库或多仓库。并依靠Gradle无与伦比的多功能性来构建所有组件。
Automate Everything:使用Gradle丰富的API和成熟的插件和集成生态系统来实现自动化方面的雄心勃勃。从头到尾对您的软件交付进行建模,集成和系统化。
**Deliver Faster **:通过优雅,快速的构建来扩展开发。从避免编译到高级缓存等,我们不懈地追求性能,以便您的团队可以持续交付。
Gradle vs Maven Comparison
下面总结了Gradle和Apache Maven之间的主要区别:灵活性,性能,用户体验和依赖管理。这并不意味着要详尽无遗,但是您可以查看Gradle功能列表以及Gradle与Maven性能比较以了解更多信息
灵活性
Google选择Gradle作为Android的官方构建工具; 不是因为构建脚本是代码,而是因为Gradle的建模方式可以用最基本的方式扩展。Gradle的模型还允许将其用于C / C ++的本机开发,并且可以扩展为涵盖任何生态系统。例如,Gradle在设计时会考虑使用其Tooling API进行嵌入。
Gradle和Maven都提供了配置约定。但是,Maven提供了一个非常僵化的模型,使定制变得乏味,有时甚至是不可能的。尽管这可以使您更容易理解任何给定的Maven构建,但是只要您没有任何特殊要求,它也就不适合许多自动化问题。另一方面,Gradle的构建考虑了授权和负责任的用户。
性能
缩短构建时间是加快出货速度的最直接方法之一。Gradle和Maven都采用某种形式的并行项目构建和并行依赖项解析。最大的不同是Gradle避免工作和增加工作量的机制。使Gradle比Maven快得多的前3个功能是:
增量— Gradle通过跟踪任务的输入和输出并仅运行必要的内容,并且仅在可能时处理已更改的文件,从而避免了工作。
Build Cache(构建缓存) —重用具有相同输入的任何其他Gradle构建的构建输出,包括在机器之间。
Gradle Daemon —一个长期存在的过程,可将构建信息“热”存储在内存中。
在Gradle与Maven的性能对比中,这些和更多的性能特性使Gradle在几乎每种情况下的速度至少是其两倍(对于使用构建缓存的大型构建而言,则要快100倍)。
注意: Gradle和Maven用户都可以利用Gradle Enterprise中可用的Build Cache技术。Gradle用户通常可将构建时间减少约50%,而Maven用户通常可将构建时间减少约90%。 观看此视频,以了解有关Gradle Enterprise Maven Build Cache技术和业务案例的更多信息。
用户体验
在IDE中用Kotlin编写的Gradle构建脚本
Maven的任期较长,这意味着它对许多用户的IDE支持更好。但是,Gradle的IDE支持继续迅速提高。例如,Gradle现在具有基于Kotlin的DSL,可提供更好的IDE体验。Gradle团队正在与IDE制作者合作,以使编辑支持变得更好-随时关注更新。
尽管IDE很重要,但是许多用户还是喜欢通过命令行界面执行构建操作。Gradle提供了一个现代的CLI,该CLI具有可发现性功能,例如“渐变任务”,以及改进的日志记录和命令行完成功能。
最后,Gradle提供了一个基于Web的交互式UI来调试和优化构建:构建扫描。这些还可以在内部托管,以允许组织收集构建历史记录并进行趋势分析,比较构建以进行调试或优化构建时间。