在docker中构建时,缩短了Android的构建时间

时间:2018-12-23 01:54:38

标签: android android-gradle

我在Docker容器中的Jenkins上运行约30多个构建作业。这些作业中的每一个都在干净的Docker容器中执行Android项目的构建。每次都会重新创建docker容器,因此作业执行之间不会保存任何内容。

我正在研究可以改善构建时间的方法。通过研究,我发现可以使用Android支持的两种缓存机制。

1)Gradle构建缓存:https://docs.gradle.org/current/userguide/build_cache.html

2)Android构建缓存:https://developer.android.com/studio/build/build-cache

据我所知,Gradle构建缓存将允许我缓存与gradle相关的工件(例如,内置的类和资源),而Android构建缓存将使我能够缓存与Android相关的工件(例如AAR库,未定义) dex文件等)。

这两种缓存机制都非常容易添加到我的项目中。但是,我遇到的一个问题是,由于每次都重新创建我的docker容器,由于在会话结束时将其释放,因此我实际上无法持久保留缓存。

我必须解决此问题的一个想法是,将主机上的卷实际安装到docker容器中,并使两个缓存均写入此新安装的区域。这在大多数情况下都有效,但是我遇到了奇怪的行为和零星的gradle崩溃。我对此进行了研究,并了解到不支持在docker容器中共享gradle缓存。

https://github.com/gradle/gradle/issues/851

我正在研究是否可以在docker容器之间共享Android Build Cache,但是我猜想共享存在类似问题。

我想知道其他人如何解决了这个问题。

谢谢!

0 个答案:

没有答案