您的位置:首页 > 其它

显著减少项目gradle编译时间

2017-03-25 21:45 609 查看
原文来自https://zeroturnaround.com/rebellabs/making-gradle-builds-faster/

1.对build过程进行配置实现编译优化:

(1)首先了解如何用命令行进行编译:

使用git命令行进入项目根目录,然后执行

./gradlew :app:assembleDebug --dry-run
这样显示编译成功后也会在底部显示编译的总时间。

第一次编译会对依赖等进行处理,时间会长一些。

(2)显示编译的详细时间

只需要在命令行中加入--profile,也就是

./gradlew :app:assembleDebug --dry-run --profile
项目目录的build/reports/profile下就会出现一个html文件,里面显示了编译的几个环节以及所需的时间:



(3)设置按需编译:

我们可以设置gradle只在需要编译的地方进行编译,这个功能是graldle的一个隐藏功能,只需要在命令行中加入--config-on-demand即可

再次编译后就会发现编译时间有明显减少。

(4)设置daemon:

gradle是通过jvm进行编译的,而daemon可以大大减少加载jvm和classes等的时间,使用只需要加入--daemon

2.使用最新版本的gradle:

gradlex每次更新工程师都会对它进行优化,所以使用最新的gradle自然会获得最快的速度

(文档里的更新部分没有看懂,待指教)

同理也应该使用最新的java

3.固定依赖版本:

在gradle文件里设置的各种依赖库的版本是可以动态指定的,版本号使用+代替。但是这样的话会带来很多问题,首先,编译时编译器会连接网络寻找这个库的最新版本,然后有可能会进行更新,耗费很多时间。其次,由于版本的不确定,在将项目移植到别的地方时也会出现版本不对应编译不通过的问题。所以,将库的版本写死是最好的选择。

4.将项目模块化:

将项目进行模块化的架构设计有什么好处呢,gradle拥有将这些模块进行并行编译的能力,这显然会大大提高效率。为了支持这种并行操作,需要在命令行中加入--parallel。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: