以MEET 搭建jenkins编包环境为例,详细介绍搭建流程及踩坑经历。目前jenkins编包依赖JDK环境,gradle打包依赖于android-sdk,所以先搭建基础支持。
本文所用的linux 环境为:(命令:lsb_release -a)
lsb_release –a: 查看Linux系统版本
Description: CentOS release 6.3 (Final)
uname –a : 查看内核版本
Linux *** 3.10.0_3-0-0-15 #1 SMP Fri Jan12 18:18:11 CST 2018 x86_64 GNU/Linux
ssh交互端: SecureCRT
一.JDK
手动上传JDK安装包,并设置环境变量
1. JDK安装包获取方式:本地下载,sz 上传(java 1.8的版本),下载地址如下:(http://www.oracle.com/technetwork/java/javase/downloads/index.html)
2. 解压到指定文件夹
3. 针对所有用户,可在/etc/profile新增环境变量如下
JAVA_HOME=**/jdk1.8.0_171 (这里请替换成你的完整路径)
CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
PATH=$JAVA_HOME/bin:$PATH
JRE_HOME=$JAVA_HOME/jre
exportJAVA_HOME CLASSPATH PATH
如果仅在自己的用户下面添加,以work账户为例,在/home/work/.bash_profile,按照如上添加就好。
4. source/etc/profile (或者 source /home/work/.bash_profile)使环境变量生效
5. java–verison 验证是否安装成功
二.Android-sdk
手动上传android-sdk包,或线上直接下载,并设置环境变量
1. Android-sdk安装包获取方式
a) 本地下载,sz上传(同Java)
b) 命令获取
wget http://dl.google.com/android/android-sdk_r24.4.1-linux.tgz
安装包解压后需要下载platforms, build-tools 。 此时同样可使用命令下载及更新,在andriod安装目录找到tools,使用android 或sdkmanager命令来进行更新。
获取服务器上最新的android sdk:android list sdk
列出所有的sdk : android list sdk --all
更新sdk命令:android update sdk (该命令是更新所有的可用的,可使用—filter 更新部分sdk)。 具体例子如:android update sdk --no-ui --filter 1,2 –-all。 其中1,2指的是 list sdk后的编号。
如果直接无法获取到,可以通过使用国内的android 镜像,国内的Android代理镜像服务器:
http://mirrors.neusoft.edu.cn 端口:80
http://ubuntu.buct.edu.cn/端口:80
http://ubuntu.buct.cn/端口:80
http://sdk.gdgshanghai.com端口:8000
IPv6:http://ubuntu.buct6.edu.cn/ 端口:80
使用指定代理更新的方式如下:
android update sdk --no-ui --filter 1 --proxy-hostubuntu.buct.edu.cn --proxy-port 80 -s –all
sdkmanager更新方式具体请自行查询。
2) 配置环境变量,同样可配置在/etc/profile中,或者自己工作账户目录的配置文件下,如/home/work/.bash_profile,配置如下:
exportANDROID_HOME=**/android-sdk-linux (请替换成具体的目录)
exportPATH=$ANDROID_HOME/tools:$ANDROID_HOME/platform-tools:$ANDROID_HOME/build-tools/25.0.0:$PATH
三.Jenkins
Jenkins目前支持两种安装方式,一种是使用yum 直接安装,一种是结合tomcat 进行安装。本文使用的是tomcat 的方式,因此,简略的介绍通过yum 安装
1) yum 安装
a) 添加jenkins源
sudowget -O /etc/yum.repos.d/jenkins.repo http://jenkins-ci.org/redhat/jenkins.repo
b) rpm增加jenkins的key
sudo rpm--import http://pkg.jenkins-ci.org/redhat/jenkins-ci.org.key
c) 安装jenkins
yum install jenkins
d) 使用命令启动jenkins
sudo service jenkinsstart
在浏览器中输入:http://<服务器ip>:port/ 就可以进入Jenkins界面直接使用了 。其中port为tomcat服务使用的端口,可自定义。
e) 停止Jenkins服务的命令为:
sudo service jenkins stop
f) Jenkins相关目录介绍
安装目录:/var/lib/jenkins/
配置文件目录: /etc/sysconfig/jenkins
日志目录:/var/log/Jenkins
可以在配置文件中修改jenkins主目录(JENKINS_HOME),jenkins用户(JENKINS_USER),jenkins端口(JENKINS_PORT)等
2) tomcat 安装
a) 下载jenkins.war包, 下载地址:https://jenkins.io/download/
b) 下载apache-tomcat 并解压至指定目录,确保tomcat正常启动,可以修改tomcat服务端口号
c) 移动jenkins.war 至 **/apache-tomcat-9.0.2/webapps
d) 浏览器输入http://<服务器ip>:port/jenkins/ , 进入jenkins配置页面
e) 首先进入会提示输入初始密码,直接复制指定路径的初始密码即可
f) 输入完成后,会进入插件下载页面,如果进入正常,则根据需求选择添加插件的类型,如果不正常,可能出现如下图所示:
可通过以下方式解决(首先请确保linux 机器可有网络)
浏览器另起一个tab输入:
http:// <服务器ip>:port/jenkins/ pluginManager/advanced
将升级站点的url替换为上图所示,查看该页顶部
可选插件处是否有插件列表,如果依旧为空,则可将url 替换为:
http://mirrors.tuna.tsinghua.edu.cn/jenkins/updates/current/update-center.json
再次查看,勾选相应的插件进行下载,因为我们采用git来管理工程,所以git相关的插件一定要下载下来。
g) 安装成功后,创建账户,并进入首页
h) 构建自己的第一个工程,并进行配置,需配置工程名,源码获取方式,构建方式等。
工程拉取下来存储在用户根目录的.jenkins/workspace下面。
四.Gradle打包
服务器采用gradlew命令行编包,或者jenkins的gradle插件进行打包,其均需要在jenkins工程的配置页面进行配置。
本文采用的是gradlew命令行打包。Gradlew是包装器,自动下载包装器里定义好的gradle 版本,保证编译环境统一,gradle 是用本地的gradle版本。如果服务器上工程很多,每一个工程要求的gradle版本都不一致时,建议使用gradlew命令。
本文使用的命令如下图所示:
其中flavor 和 buildtype是自己增加的变量,对应的是工程内部build.gradle中不同的取值,具体需按照工程要求配置。-P后面跟的是我们在build.gradle中设置的可变参数,同需要根据自己的需要更改。
由于我们工程采用的buidToolsVersion和targetVersion都是25,编译过程中会提示
即使用aapt编译资源文件时,会出现,提示我们25的aapt需要glibc_2.14的支持。
查看linux机器支持的glibc版本:
发现只安装到2.12,查看libc.so.6链接到的glibc版本为libc-2.12.so
所以需要升级linux系统的glibc版本。(升级有风险,操作需谨慎)
升级步骤如下(一定放在root用户下进行,首先请进入你需要放置安装包的路径):
1. wget http://ftp.gnu.org/gnu/glibc/glibc-2.14.tar.gz #下载glibc 2.14
2. wget http://ftp.gnu.org/gnu/glibc/glibc-ports-2.14.tar.gz #下载glibc-ports-2.14
3. tar -xvf glibc-2.14.tar.gz
4. tar -xvf glibc-ports-2.14.tar.gz
5. mv glibc-ports-2.14 glibc-2.14/ports
6. mkdir glibc-build-2.14 # 在当前目录新建build 文件夹
7. cd glibc-build-2.14/ # 进入到该build文件夹
8. ../glibc-2.14/configure --prefix=/usr #设置其安装目录
9. make –j4 #以4核进行编译
10. make install #安装
11. ll /lib64/libc.so.6 #检查更新
最终显示的应该为:
以上8,9,10任何一步出错,都可能会导致失败。第8,9步一定不能有失败提示,第10步有失败提示的时候,可以先进性11步的检查,如果失败的话,建议多尝试几次。
安装好glibc_2.14后,gradle可正常进行。
五.取包
由于我们的jenkins是安装在tomcat上的,所以可以直接在tomcat配置中中增加context的静态目录配置,以获取安装包。具体操作为,进入tomcat的conf目录,打开server.xml,在host标签下增加如下context配置。
其中docBase即我们的安装包放置的绝对路径。此时便可通过http://<服务器ip>:port/ 访问该路径下的内容。