个人总结 gradle 缺点:
- api 未稳定,不同版本不兼容。
- 下载软件包用 hash 作目录,难以分辨,难以清理。不同版本的 gradle 竟然各自重复维护相同版本的软件包。
- 同样是从那三个仓库下软件包,为什么 gradle 就比 maven 慢这么多(来自 java 后端项目开发时的体验对比)?
- 出错提示太简陋,无法定位错误原因。
- 脚本编写没有约束,也就是太灵活,不利于协作。
- 耗内存,甚至超过 idea 占用的内存。这个是 gradle 特性决定的。为了节省构建时间,gradle 会在敲代码期间一直在后台对待构建内容进行缓存。所以能在构建时快于 maven (但我的实际体验感觉也没快多少)。maven 平时是不运行的。而且我不知道为啥 gradle 要另起个进程,而不是像 maven 那样内置在 idea 里通过 api 调用。难道是因为 gradle 是 groovy 写的所以没法内置到 idea 里?要知道两个 jvm 进程可不同于两个 native 进程,相当于跑在两个虚拟机里,需要两倍的虚拟层和运行时的资源开销。而如果把守护进程关掉,那么在构建时,gradle 会巨慢无比。
旧版只能用 groovy 写脚本也算个缺点,这个语言太灵活。本身 gradle 对脚本编写没有约束就很灵活了,这样一来一个构建脚本在项目复杂之后都很有可能变得难以阅读。
很久以前 idea 还能用 maven,不知道现在还能不能用?
