android - Bamboo 上的 Android 构建在 lintVital 任务上挂了 20 多分钟
问题描述
一段时间以来,我们所有的 Android 构建(在 Bamboo 上运行)都在lintVital
任务中挂起 20 多分钟,此时构建通常会被强制停止:
build 28-Jan-2019 09:25:25 > Task :app-bigscreen:lintVitalProdFiretvRelease
build 28-Jan-2019 09:26:36 Calling mockable JAR artifact transform to create file: /appl/bamboo/gradle-home/caches/transforms-2/files-2.1/552f5f21376c4f273769ade73c6fef92/android.jar with input /appl/bamboo/android-sdk-linux/platforms/android-28/android.jar
error 28-Jan-2019 09:47:00 Force Stop build feature is enabled for current plan. Either Bamboo has detected the build has hung or it has been manually stopped.
但是,这仅在我们的两个 Bamboo 构建代理中的一个上出现 - 在另一个上,相同的构建正在运行而没有任何问题,lintVital
任务在一秒钟内完成。(开发机器上的构建也运行良好。)根据我们的 Bamboo 管理员的说法,两个构建代理上的设置是“相同的”——我还确保 Android SDK 文件夹是同步的,因为错误之前的行引用了一些Gradle 缓存中的文件我也删除了该文件夹,但这也没有任何好处。
所以,我基本上是在寻找任何可能导致 lintVital 任务挂起的提示?
或者,更一般地说:lintVital
任务做什么以及它依赖什么工具或其他输入(除了我们的 Git 存储库的内容)?
解决方案
Lint 是内存密集型的。为您的构建提供更多内存。
把它放在<project root>/gradle.properties
文件中:
# Gradle will get 1 GB of memory to play with.
org.gradle.jvmargs=-Xmx1g
(或将-Xmx
参数添加到预先存在的org.gradle.jvmargs
属性)
如果仍然不够,请增加它。但是不要提供超过它需要的东西,垃圾收集会随着可用内存的增长而变慢。默认值为512m
。
推荐阅读
- java - 如何更改 PDF 上书写的文本比例(scaleX 和 scaleY)?
- terraform - 将存储共享添加到 Azure 存储帐户时出错
- quarkus - 在运行时更改 quarkus 应用程序的 http 根路径
- javascript - JavaScript 多次使用 window.onload
- spring-boot - 继续强制关闭生产者,因为挂起的请求无法在超时 30000 毫秒内完成
- java - HttpsURLConnections 默认主机名验证程序
- angular - 如何使用 ngx-translate 本地化来自后端的数据
- python - 如何在 django 模型/视图中计算总和
- python - 时间序列的 Seaborn 图周期性
- oauth - 在 Azure Devops Yaml 文件中使用“誓言令牌”不起作用