maven和gradle深析
本质
- gradle使用的是真正的脚本语言groovy(很关键一点就是它也是编译为class运行在jvm上的),maven使用的是标签语言xml(本质是就是符合预定的文本)
- gradle中拥有灵活的task,而maven中使用的是绑定在固有生命周期上的插件
表象
太多细节我就不做介绍了,我在这里介绍几个我认为比较重要的差异。
大家如果有兴趣可以参考maven对比gradle,我是都看完了,也建议大家都看看
- gradle测试的时候不依赖于测试框架
- 可以在IDE中debugging构建过程
- 任务排除(可以将正在执行的任务停止)
- 真正的多任务执行
- 完全兼容ant和maven(这一点对于之前使用eclipse开发的小伙伴很高兴)
- 对于Android开发者更加官方
- 增量构建(这一点在插件化问题日益凸显的情况下非常重要)
- 更好的兼容C/C++
- 构建中任务取消
- 大量的检查机制
这是我认为最为重要的10个优势吧
在我看来,每一个优势都是由于之前的那两个本质因素决定的
在原理上gradle集成了ant的task机制和maven的依赖管理,在形式上使用更加简洁灵活的groovy,个人认为gralde不是一款拥有创新性的构建工具,但是集成前几代构建工具的精华,并进行优化。
希望大家在项目中能够多多使用gradle.