使用 Jenkins 持续集成 Android 项目遇到的坑

在使用Jenkins配置Android项目的时候遇到了一些坑,总结下:javascript

##没有gradle.properties文件java

  • 错误信息:

    example/bulid.gradle
    FAILURE: Build failed with an exception.android

    • Where:
      Build file '/Users/Shared/Jenkins/Home/jobs/android- crop/workspace/build.gradle' line: 12
    • What went wrong:
      A problem occurred evaluating root project 'workspace'.
      Could not find property 'VERSION' on root project 'workspace'.
  • 错误分析:使用Android Studio打开一个项目的时候默认会生成gradle.properties,在使用Jenkins集成的时候使用的是gradle assembleRelease命令,不会自动生成gradle.properties的,就出现了上面的错误。
  • 解决方案:在项目根目录添加一个gradle.propertiesgit

    VERSION=1.0.1
    VERSION_CODE=1
    signing.keyId=
    signing.secretKeyRingFile=
    signing.password=
    sonatypeUsername=jdamcd
    sonatypePassword=复制代码

##没法使用.ssh中的private keyssh

  • 错误信息:使用clone项目的时候没法使用.ssh中的private key
  • 错误分析:安装Jenkins的时候会新建了一个用户(jenkins),jenkins用户没有权限读取~/.ssh的权限。
  • 解决方案:在Jenkins的界面中使用Add credentials手动输入private key的内容:
    add credentials

##构建项目权限不足工具

  • 错误信息:gradle

    • What went wrong:
      java.io.IOException: Permission denied
      Permission denied
  • 错误分析:形成这个问题的缘由是由于给予jenkins用户的权限不足,没法操做jenkins目录。ui

  • 解决方案: 给jenkins用户足够的权限this

    sudo chown -R jenkins /var/lib/jenkins/复制代码

##没有设置sdk的目录lua

  • 错误信息:没法构建Android项目,找不到sdk位置
  • 错误分析:local.properties一样的也是由Android Studio中自动根据环境变量生成的,在使用gradle build的时候也是没法自动建立的。

  • 解决方案:在项目根目录定义一个local.properties并指定sdk.dir为Android SDK的位置。

    ## This file is automatically generated by Android Studio.
    # Do not modify this file -- YOUR CHANGES WILL BE ERASED!
    #
    # This file must *NOT* be checked into Version Control Systems,
    # as it contains information specific to your local configuration.
    #
    # Location of the SDK. This is only used by Gradle.
    # For customization when using a Version Control System, please read the
    # header note.
    #Fri Dec 11 16:57:33 CST 2015
    sdk.dir=/var/lib/jenkins/tools/android-sdk复制代码

##请使用插件
Jenkins提供各类强大的插件好比:

  • Gradle plugin:能够配置管理本地的gradle。
  • Git Parameter Plug-In:能够帮助在Jenkins中更好的管理git。
  • Android Emulator Plugin:能够管理Android sdk,也能够帮助集成Android项目。
    Jenkins的有各类强大的插件,若是某个配置或者某个工具不知道在Jenkins中使用,能够尝试找下它的插件。
相关文章
相关标签/搜索