美文网首页
Jenkins for Android离线使用的那些坑

Jenkins for Android离线使用的那些坑

作者: Devin_Lin | 来源:发表于2020-04-09 15:49 被阅读0次

    之前使用Jenkins一般都是在外网上使用,问题一般都不是很大,但这次内容的却是另一番滋味,因此总结了所遇到的一些问题!

    一、离线安装Jenkins插件

    对于Jenkins插件外网使用时直接下载更新即可,但内网使用却是麻烦的多。
    1.下载插件包(http://updates.jenkins-ci.org/download/plugins/
    ),本地上传(系统管理–管理插件–高级–上传插件),这种方式较为麻烦,离线包之间依赖较多,需不断的上传验证。

    2.外网电脑安装Jenkins并安装所需要的插件(系统管理–管理插件–可选插件–勾选安装),拷贝所有插件到内网电脑上对应的目录,重启Jenkins。这也是这次我所使用的方法,感觉比下载离线包再上传安装方便的多。



    对于Jenkins重启,我这里是直接通过重启Jenkins服务。


    二、构建失败

    1.mergeDebugResources FAILED


    解决方法:
    (1)添加系统变量GRADLE_USER_HOME;

    (2)Jenkins项目gradle配置时勾选Force GRADLE_USER_HOME to use workspace

    2.lint FAILED

    解决方法:提示已很明显,在每个Module的build.gradle文件中配置。

    lintOptions {
            abortOnError false
    }
    

    3.mockableAndroidJar FAILED

    这里出现的原因主要是修改了android.jar包里面的内容所导致的,解决方法:在项目最外层build.gradle文件中设置

    allprojects {
        gradle.taskGraph.whenReady {
            tasks.each {task ->
                if(task.name == 'mockableAndroidJar'){
                    task.enabled = false
                }
            }
        }
    }
    

    4.Failed to notify project evaluation listener


    我这里出现原因是部分module指定了jdk版本,部分没有,所以解决方法即在每个module中均指定jdk版本。
    compileOptions {
            sourceCompatibility 1.8
            targetCompatibility 1.8
    }
    
    三、指定Module编译

    当项目中存在多个module(多个应用)时,指定module进行构建(在项目配置gradle内设置)。


    总结:这里只是对这次设置过程中遇到的一些坑做一个简单记录,还有其他一些关键点可以自行查询尝试(如:参数化构建、邮件发送、权限管理等)。

    相关文章

      网友评论

          本文标题:Jenkins for Android离线使用的那些坑

          本文链接:https://www.haomeiwen.com/subject/ponqmhtx.html