对,就是针对maven的(手动狗头)
增量的构建
gradle增量的构建应该是包含两个部分,一个是任务的增量执行,一个是文件的增量编译。gradle会检测task的输入或输出是否改变,只执行发生了改变的task。执行task的时候也会尽量识别哪些文件发生了改变,从而避免编译未发生改变的文件
构建缓存
gradle会将task的输出缓存下来,后续可以重复利用,这应该也是实现增量构建的非常重要的方面。而且。gradle的缓存不仅仅是local的缓存,也可以和remote的task共享一个缓存目录,从而实现跨机器的缓存,比如对于实现了持续集成的团队来说,local开发可以依赖CI的输出,减少本地构建的时间
daemon进程
这是一个非常细节的功能,构建本身是需要启动一个新的jvm的,像mvn,每次build其实背后都会启动jvm,然后会load编译所需的内容,这个过程其实是很慢的,项目越大,初始化的时间越长。gradle为了节省这一部分时间,会启动一个daemon进程,然后每次本地构建虽然也会启动jvm,但这个jvm其实只是用来跟daemon通信,build还由daemon进行,那build越频繁,这节省的jvm初始化的时间就越多。