- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我已经按照以下步骤设置了一个 Jenkins 作业来构建我的 android 项目:
但是,在 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 触发构建时发生。似乎有什么东西正在杀死 Gradle 守护进程,因为 JVM 设置看起来不错。也许 ssh 分离仍在发生,但与我之前看到的不同。
最佳答案
尝试手动打开到您的 ubuntu slave 的 ssh 连接,然后尝试通过配置 keep alive 参数来增加 ssh 服务器配置(/etc/ssh/ssh_config
)的连接超时,如下例所示:
# activates the keep alive verification (default is Yes)
# you could just set this to No but it would risk keeping ghost ssh sessions
TCPKeepAlive Yes
# sets the keep alive interval (in seconds) - this will send one keep alive per minute
ClientAliveInterval 60
# Sets the number of client alive messages which may be sent without sshd receiving any messages back
ClientAliveCountMax 10
这意味着 sshd 将每分钟发送一个客户端,并在关闭 ssh session 之前等待 10 分钟以等待客户端响应。
假设您的整个 jenkins 构建(结帐 + 安装东西 + gradle 构建)花费不到 10 分钟,它应该可以正常工作。
关于android - 任何有助于使用 Jenkins 构建 Android 应用程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38310975/
是否有任何工具可以帮助 JSP 文件中的字符串国际化? 大多数 IDE(例如 NetBeans)都为 Java 代码提供了这样的功能。但是,对于 NetBeans,JSP 文件不存在此类功能。 与 g
我在 Android Studio 项目的纯 Java 模块中使用 Lombok。这是模块的 build.gradle: apply plugin: 'java' apply plugin: 'war
我是一名优秀的程序员,十分优秀!