Jenkins的问题和Android的构建缓存

时间:2017-08-31 11:58:44

标签: android caching jenkins

我使用Jenkins构建Android项目。 我遇到的问题是除非我禁用缓存,否则Jenkins会给我一些错误,例如:

  

12:31:15 AAPT:\?\ C:\ Windows \ System32 \ config \ systemprofile.android \ build-cache \ 34562456245625 \ output \ res \ drawable-mdpi-v4 \ abc_text_select_handle_left_mtrl_dark.png错误:无法打开PNG文件

我无法禁用缓存,因为我必须在git上共享的gradle.properties文件中执行此操作。

我不想在Jenkins上使用缓存,因为我想确保构建始终从头开始。

在这种情况下,最佳做法是什么?我应该打开还是关闭缓存? 如果我需要关闭它,我怎样才能在不停止缓存的同时在开发人员的基础上进行操作。机器吗? 如果我应该继续使用它,我该怎么做才能避免错误,并确保构建不会受到缓存中任何奇怪问题的影响?

2 个答案:

答案 0 :(得分:1)

我建议禁用构建缓存。 如果你不能这样做,因为它在源代码控制下并在多个环境中共享,我会使用一个小批量脚本在构建之前创建gradle.properties的副本,修改原始文件以在构建时禁用缓存在后期构建步骤中,将未修改的原始文件复制回该位置。 如果一切正确,这个gradle.properties文件将不会被识别为已修改,因此不会导致任何拉/结账冲突。

我在多个构建中使用多个文件执行此操作(在c#中我们在构建然后还原它们时替换AssemblyInfo.cs文件中的版本号,我们还使用android构建执行一些文件 - hiphop)

希望这有帮助, 欢呼,格里斯

答案 1 :(得分:0)

我决定保留缓存。我现在:

1)在gradle.property

中设置构建缓存目录

2)每次通过调用gradlew cleanBuildCache

清理缓存