美文网首页Android潜修者程序员Android知识
使用Jenkins持续集成Android项目遇到的坑

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

作者: 姜家志 | 来源:发表于2017-03-25 07:42 被阅读784次

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

    没有gradle.properties文件

    • 错误信息:

    example/bulid.gradle
    FAILURE: Build failed with an exception.
    * 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.properties

      VERSION=1.0.1
      VERSION_CODE=1
      signing.keyId=
      signing.secretKeyRingFile=
      signing.password=
      sonatypeUsername=jdamcd
      sonatypePassword=
      

    无法使用.ssh中的private key

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

    构建项目权限不足

    • 错误信息:
    • What went wrong:
      java.io.IOException: Permission denied
      Permission denied
    • 错误分析:造成这个问题的原因是因为给予jenkins用户的权限不足,无法操作jenkins目录。

    • 解决方案: 给jenkins用户足够的权限
      sudo chown -R jenkins /var/lib/jenkins/

    没有设置sdk的目录

    • 错误信息:无法构建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中使用,可以尝试找下它的插件。

    相关文章

      网友评论

        本文标题:使用Jenkins持续集成Android项目遇到的坑

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