【发布时间】:2016-07-11 15:38:55
【问题描述】:
我已经设置了一个 Jenkins 作业以按以下步骤构建我的 android 项目:
- 通过 SSH 连接到 ubuntu 机器。我使用 SDK、java、gradle 等进行设置。
- 克隆我的源代码
- 使用“./gradlew assembleRelease”构建 apk
- 部署它或通过电子邮件发送给我(apk 构建后的步骤,可自定义)
但是,在 android 构建过程的某些步骤中,SSH 隧道会关闭到我的远程计算机,例如在构建以下模块时: :app:transformClassesWithDexForDevRelease
我正在寻找一种方法来保持 SSH 隧道开启,以便不存在构建命令。我尝试使用 nohup 运行该命令,但还是一样。
任何帮助或建议将不胜感激。
编辑:
我也可以通过对登录机器进行小的更改来解决 ssh 问题,方法是添加 主持人* ServerAliveInterval 600
但是,在我添加了 --stacktrace 标志之后,我会得到以下响应:
org.gradle.launcher.daemon.client.DaemonDisappearedException: Gradle build daemon disappeared unexpectedly (it may have been killed or may have crashed) at
org.gradle.launcher.daemon.client.DaemonClient.handleDaemonDisappearance(DaemonClient.java:222)
这似乎很奇怪,因为当我通过直接登录到远程计算机进行构建时,从未出现此错误。它仅在使用 Jenkins 触发构建时发生。因为 JVM 设置看起来不错,所以似乎有些东西正在杀死 Gradle 守护进程。也许 ssh 分离仍在发生,但与我之前看到的不同点。
【问题讨论】:
-
目前有什么进展吗?
标签: android ubuntu jenkins gradle ssh