在使用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的内容:
构建项目权限不足
错误信息:
What went wrong:
java.io.IOException: Permission deniedPermission 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
中使用,可以尝试找下它的插件。
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。