基于CentOS 6.4 使用Jenkins 进行Android集成打包

本文主要描述如何在CentOS 6.4上使用Jenkins进行Android集成打包。同时介绍一些常见问题解决方法,不是十分全面,会在后面使用过程中更新。
全文大体分为以下几个部分:

  • Java 8的安装和环境变量配置
  • Android SDK的安装和环境变量配置
  • Gradle 的安装和环境变量配置
  • Jenkins的安装和部署
  • Android自动打包任务配置
  • 填坑之旅

Java 8的安装和环境变量配置

Java8的安装可以有多种方式:比如在官网上下载后到服务器上去解压安装配置,也可以通过yum工具进行自动下载安装。

1、官网下载安装

官网下载Java8的jdk 官网下载地址,如图下图,选择对应服务器版本下载
基于CentOS 6.4 使用Jenkins 进行Android集成打包_第1张图片
将安装包上传到服务器,mac 使用scp命令即可,也可以使用FileZilla上传
命令格式为:

scp 需要上传的文件路径  root@服务器地址:/usr/java

解压缩:

tar xvf jdk-8u102-linux-x64.tar.gz

配置环境变量,将以下脚本添加到/etc/profile文件的末尾,使用vim命令进行编辑

export JAVA_HOME=/usr/local/java/jdk1.8.0_181export JRE_HOME=${JAVA_HOME}/jreexport CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/libexport PATH=${JAVA_HOME}/bin:$PATH

然后刷新文件:

source /etc/profile

执行java -version,结果显示已安装成功

[root@gittechsun java]# java -versionjava version "1.8.0_181"Java(TM) SE Runtime Environment (build 1.8.0_181-b13)Java HotSpot(TM) 64-Bit Server VM (build 25.181-b13, mixed mode)

2、使用yum jdk1.8 安装

# 列出所有安装包yum -y list java* #列内容java-1.8.0-openjdk.x86_64 # 安装命令yum -y install java-1.8.0-openjdk.x86_64

Android SDK的安装和环境变量配置

1、下载android sdk linux版本
2、上传到服务器,解压到/opt/app,然后配置环境变量/etc/profile
增加

export ANDROID_HOME=/opt/appl/android-sdk-linuxexport PATH=$ANDROID_HOME/tools:$PATH

更新文件

source /etc/profile

3、安装所有包

android update sdk -no-ui

或者查看序列号,根据序列号安装某几个版本的包
查看序列号

android list sdk -all

按序列号安装

android update sdk -u --all --filter 1,2,3

Gradle 的安装和环境变量配置

1、官网下载Gradle 官网下载地址
2、上传到服务器,解压到/opt/app,然后配置环境变量 /etc/profile
增加

export GRADLE_HOME=/opt/app/gradle-4.10export PATH=$GRADLE_HOME/bin:$PATH

更新文件

source /etc/profile

查看版本,正常显示版本就说明成功了

gradle -version

Jenkins的安装和部署

1、从官网下载Jenkins安装包官网下载地址
2、将安装包上传到服务器,进入服务器上传目录,执行安装命令,命令格式如下:

rpm -ih jenkins-****.noarch.rpm

如果安装成功会提示:

warning: jenkins-2.73.1-1.1.noarch.rpm: Header V4 DSA/SHA1 Signature,key ID 82e6: NOKEY ########################################### [100%]########################################### [100%]

3、安装后的文件目录如下:

/usr/lib/jenkins/jenkins.war WAR包
/etc/sysconfig/jenkins 配置文件
/var/lib/jenkins/ 默认的JENKINS_HOME目录
/var/log/jenkins/jenkins.log Jenkins日志文件

4、

启动 service jenkins start 成功提示 Starting Jenkins [ OK ]
重启 service jenkins restart
关闭 service jenkins stop

5、网页访问如下地址:

服务器IP地址:8080(默认8080,如需要更改见后面详细介绍)
初次访问密码可从如下命令获得:
vim /var/lib/jenkins/secrets/initialAdminPassword
然后可设置一个账户密码,也可以直接用admin

6、更改端口号
jenkins的war包存放在/usr/lib/jenkins目录下,配置文件jenkins存在/etc/sysconfig,编辑打开该文件,修改如下位置

## Type:        integer(0:65535)## Default:     8080## ServiceRestart: jenkins## Port Jenkins is listening on.# Set to -1 to disable#JENKINS_PORT="8082"

保存后更新文件即可,执行重新启动命令即可

service jenkins restart

Android自动打包任务配置

1、首次进入jenkins,会提醒你安装插件,就安装推荐的即可。进入主页面后需要在系统管理中找到管理插件选项,确认以下三个插件是否安装完成。

Git Plugin
Gradle Plugin
Android Lint Plugin

如下图:
基于CentOS 6.4 使用Jenkins 进行Android集成打包_第2张图片
基于CentOS 6.4 使用Jenkins 进行Android集成打包_第3张图片
2、配置环境变量
配置Android SDK路径
基于CentOS 6.4 使用Jenkins 进行Android集成打包_第4张图片
基于CentOS 6.4 使用Jenkins 进行Android集成打包_第5张图片
配置JDK路径
基于CentOS 6.4 使用Jenkins 进行Android集成打包_第6张图片
基于CentOS 6.4 使用Jenkins 进行Android集成打包_第7张图片
配置Gradle的路径
基于CentOS 6.4 使用Jenkins 进行Android集成打包_第8张图片
3、新建一个自由风格的软件项目
基于CentOS 6.4 使用Jenkins 进行Android集成打包_第9张图片
4、接下来给这个job配置参数,根据需要选择choice 或者String参数
基于CentOS 6.4 使用Jenkins 进行Android集成打包_第10张图片
填入参数
基于CentOS 6.4 使用Jenkins 进行Android集成打包_第11张图片
基于CentOS 6.4 使用Jenkins 进行Android集成打包_第12张图片

注意:VERSION参数同时也需要在你的项目里使用同样的参数,这样才可以在构建时手动输入版本号设置生效。
基于CentOS 6.4 使用Jenkins 进行Android集成打包_第13张图片
5、配置svn源码地址
基于CentOS 6.4 使用Jenkins 进行Android集成打包_第14张图片
6、构建配置
基于CentOS 6.4 使用Jenkins 进行Android集成打包_第15张图片
7、构建工程
基于CentOS 6.4 使用Jenkins 进行Android集成打包_第16张图片

这里很多配置还没有具体用到,可以搜索相关教程了解

填坑之旅

在安装和使用过程中,我自己出现了如下问题
1、service jenkins start 提示出错

Starting Jenkins bash: /usr/bin/java: No such file or directory

解决方法:
找到/etc/init.d/jenkins文件,编辑,在变量candidates后面添加一个java8的路径如:/usr/java/jdk1.8.0_102/bin/java,由于这个路径是从上往下遍历,需要加在所有路径的上面,如下:
基于CentOS 6.4 使用Jenkins 进行Android集成打包_第17张图片
将java8 的路径写进去并放在第一行,其他的可以用#注释掉
如果还不行,注意下安装的jdk与Jenkins默认jdk路径是否一致,命令如下:

[root@xyz opt]# echo $JAVA_HOME/opt/jdk[root@xyz opt]# echo $PATH/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin:/root/bin:/opt/jdk/bin:/opt/grails/bin[root@xyz opt]# java -versionjava version "1.7.0_45"Java(TM) SE Runtime Environment (build 1.7.0_45-b18)Java HotSpot(TM) 64-Bit Server VM (build 24.45-b08, mixed mode)[root@xyz opt]# which java/opt/jdk/bin/java

如果不一致,需要通过命令进行执行:

ln -s /opt/jdk/bin/java /usr/bin/java

2、service jenkins start 提示一下内容:

Starting Jenkins Jenkins requires Java8 or later, but you are running 1.7.0_99-mockbuild_2016_05_11_05_30-b00 from /usr/lib/jvm/java-1.7.0-openjdk-1.7.0.99.x86_64/jre java.lang.UnsupportedClassVersionError: 51.0 at Main.main(Main.java:124) [ OK ]

说明jenkins缺少jdk1.8, 需要安装jdk1.8
3、构建时,控制台日志抛出
这里写图片描述
这里写图片描述

最好查一下android sdk中 build-tools 某个版本中appt2 在操作系统中少了某些库支持
ldd build-tools/{version}/aapt2

如果看到类似:

/lib64/libc.so.6: version `GLIBC_2.14’ not found (required by ./aapt2)

这种消息,就需要去安装这种库来支持构建。解决方法看:解决方法

更多相关文章

  1. 2011.10.14(2)——— android 仿照微信的图片展示功能 之 放大超过
  2. 修改Android Studio下的AVD的下载路径
  3. Android 开机图片/文字/动画 修改
  4. Qt for Android 调用android原生接口分享图片或文字
  5. [Android] 图片裁剪总结——调用系统裁剪
  6. Android 图片上传框架
  7. Android svg图片使用
  8. Android日常整理(一)---android返回键、Fragment、android分割线、

随机推荐

  1. Android(安卓)Fragment回退栈的使用
  2. 【Android(安卓)初学】9、Activity生命周
  3. Android(安卓)Vibrator开启振动功能
  4. android计数器——基础编
  5. android 线程更新view及数据传送
  6. OnConfigurationChanged 配置变化。 屏幕
  7. ActivityLaunchMode
  8. Android中的选项菜单(OptionMenu)使用案例
  9. Android(安卓)获取Ip
  10. Android(安卓)studio中给Button添加点击