我有一个包含多个模块的Android项目,即使我尝试重建它而不改变任何内容,构建时间也很慢。
其结构类似于:
还有更多“父”(和独立的父级兄弟姐妹)和“功能”模块,但设置是图片的设置。
我的gradle.properties
文件如下:
org.gradle.jvmargs=-Xmx4096m -Xms2048m
org.gradle.parallel=true
org.gradle.daemon=true
org.gradle.configureondemand=true
我正在使用Gradle版本3.5和插件版本2.4.0-alpha7。
该项目还使用multidex(javaMaxHeapSize "4g"
和jumboMode true
),数据绑定,kotlin和java以及几个注释处理器。
当构建时,我可以看到多个线程并行运行不同的任务,大部分项目除外,主要用于最终的“app”模块(我认为是正常的)。
但是很多时候似乎花在了不同的时间 :: compileJavaWithJavac任务。即使没有改变任何东西,在具有16 Gb RAM的MacBook Pro i7上构建也需要大约30秒。
如果我在功能模块的方法中更改了一行代码(甚至没有更改方法的签名),则构建时间会超过1:30分钟。
这些正常时间吗?有什么我可以进一步优化以改善构建时间吗?
我还检查了其他一些答案:
preDexLibraries = false
无效,我已经使用assembleDebug
incremental = true
建议here不起作用且deprecated minSdkVersion 21
答案 0 :(得分:0)
您应该使功能模块尽可能独立,并且与其他模块的任何依赖关系都请考虑存根。一种仅包含接口feature1-> featureonestub-> feature2
的代理