速度更快
官网比较中,各项指标中至少快两倍
- 增量性:Gradle通过跟踪任务的输入和输出并仅运行必要的内容,并且仅在可能的情况下处理更改的文件,从而避免了工作。
- 构建缓存:重用具有相同输入的任何其他Gradle构建的构建输出,包括在机器之间。
- Gradle Daemon:一个长期存在的过程,可将构建信息“热”存储在内存中。
依赖功能更强大
-
作为库使用者,Maven允许一个人重写依赖关系,但只能按版本进行。Gradle提供了可自定义的依赖关系选择和替换规则,这些规则可以声明一次,并在项目范围内处理不需要的依赖关系。这种替换机制使Gradle可以一起构建多个源项目以创建复合构建。
-
Maven具有很少的内置依赖项作用域,这些作用域在常见情况下(例如使用测试夹具或代码生成)强制使用笨拙的模块体系结构。例如,单元测试和集成测试之间没有分隔。Gradle允许自定义依赖项作用域,它提供了更好的建模和更快的构建。
-
Maven依赖关系冲突解决方案的工作路径最短,这受声明顺序的影响。Gradle可以完全解决冲突,选择图中最高版本的依赖项。此外,使用Gradle可以将版本严格声明为允许版本优先于传递版本的版本,从而可以降低依赖项的等级。
-
作为库生产者,Gradle允许生产者声明“ api”和“实现”依赖项,以防止有害的库泄漏到使用者的类路径中。Maven允许发布者通过可选的依赖项提供元数据,但仅作为文档提供。Gradle完全支持功能变体和可选依赖项。
参考文档
待完成
- 依赖的4点,还得要学完之后才能进行比较