# 介绍
gradle 和 maven 都可以用来构建 java 程序,甚至在某些情况下,两者还可以互相转换,那么他们两个的共同点和不同点是什么?我们如何在项目中选择使用哪种技术呢?一起来看看吧。
虽然 gradle 和 maven 都可以作为 java 程序的构建工具。但是两者还是有很大的不同之处的。我们可以从下面几个方面来进行分析。
# 可扩展性
Google 选择 gradle 作为 android 的构建工具不是没有理由的,其中一个非常重要的原因就是因为 gradle 够灵活。一方面是因为 gradle 使用的是 groovy 或者 kotlin 语言作为脚本的编写语言,这样极大的提高了脚本的灵活性,但是其本质上的原因是 gradle 的基础架构能够支持这种灵活性。
你可以使用 gradle 来构建 native 的 C/C++ 程序,甚至扩展到任何语言的构建。
相对而言,maven 的灵活性就差一些,并且自定义起来也比较麻烦,但是 maven 的项目比较容易看懂,并且上手简单。
所以如果你的项目没有太多自定义构建需求的话还是推荐使用 maven,但是如果有自定义的构建需求,那么还是投入 gradle 的怀抱吧。
# 性能比较
虽然现在大家的机子性能都比较强劲,好像在做项目构建的时候性能的优势并不是那么的迫切,但是对于大型项目来说,一次构建可能会需要很长的时间,尤其对于自动化构建和 CI 的环境来说,当然希望这个构建是越快越好。
Gradle 和 Maven 都支持并行的项目构建和依赖解析。但是 gradle 的三个特点让 gradle 可以跑的比 maven 快上一点: