基于linux下Jenkins+gradle+gitlab+Android studio实现APP自动打包详细教程

说明:查阅各个介绍Jenkins自动打包的网址,虽然都各有特色,但是按照介绍还是一路遇到很多处坑。经过整理,完成了相对较为准确的教程,如果对各位有帮助就给个好评。谢谢~~~话不多说,咱们开始!!

对于完全第一次接触Jenkins的小白来说,安装和部署Jenkins并不难,唯一相对较难的是gitlab的配置,以及gradle和android studio的配置。咱们一步步慢慢来。

一、Jenkins安装和部署

1、什么是Jenkins?

参考地址:https://jenkins.io/zh/doc/book/installing/

Jenkins通常作为一个独立的应用程序在其自己的流程中运行, 内置Java servlet容器/应用程序服务器(Jetty)。

Jenkins也可以运行在不同的Java servlet容器((如Apache Tomcat或GlassFish))中作为servlet运行.

2、Jenkins安装

首先要说明下,基于linux安装Jenkins,有多种方式,较为常见的有2种,一是直接在官网下载war包,二是直接在linux中通过yum安装,那么咱们一个个介绍

(一)通过下载war包方式安装Jenkins

(1)首先,打开网址:https://jenkins.io/zh/download/

基于linux下Jenkins+gradle+gitlab+Android studio实现APP自动打包详细教程_第1张图片

这里要说明下,无论Linux的内核版本是什么,都下载的是上图红色圈中部分的war包。

(二)通过yum安装Jenkins

通过命令安装

1、sudo wget -O /etc/yum.repos.d/jenkins.repo http://pkg.jenkins-ci.org/redhat/jenkins.repo

2、sudo rpm --import https://jenkins-ci.org/redhat/jenkins-ci.org.key //如果已经有 key 存在,请忽略。具体见官方 wiki

3、sudo yum install jenkins

二、安装tomcat和jdk

此处需要介绍下建议jdk安装版本在1.8.0以上,由于目前Android studio编译过程中会查找相应的资源信息,对于jdk版本较低,会提示资源无法加载(com.android.build.gradle.tasks.BuildArtifactReportTask),谨记!!!

安装tomcat和jdk都可以通过多种方式安装,各位凭借喜好自己选择,通常都是yum安装和手动下载好安装包,然后上传到Linux,这里咱们就看下第二种方式。

1、安装tomcat

首先,打开网址:https://tomcat.apache.org/download-80.cgi

基于linux下Jenkins+gradle+gitlab+Android studio实现APP自动打包详细教程_第2张图片

这里大家随意选择一种就好,只是解压的命令不一样而已。

下载完成后,将tomcat上传到Linux中,要是下载的是zip压缩格式的,用命令  unzipapache-tomcat-8.5.46-deployer.zip 。要是下载的是tar.gz压缩格式的,用命令  tar -zxvfapache-tomcat-8.5.46-deployer.tar.gz 解压即可。

2、安装jdk

其次安装jdk,打开网址:https://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html

基于linux下Jenkins+gradle+gitlab+Android studio实现APP自动打包详细教程_第3张图片

这里要看下各位的Linux系统是32位还是64位,按照所需下载即可,建议下载后缀为tar.gz压缩格式的安装包。

下载完成后,上传到Linux,以下载64位为例,通过命令 tar -zxvf jdk-8u221-linux-x64.tar.gz即可

在这里要牢记,别忘记配置环境变量:

export JAVA_HOME=/home/muchenglin/dale/jdk/jdk1.8.0_221

export PATH=$JAVA_HOME/bin:$PATH

export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar

三、Android studio 安装

Android Studio是谷歌自己的 Android 开发 IDE,是带 ADT 插件的 Eclipse 的不错替代品。Android Studio 可以通过源代码安装,但在这篇文章中,我们将看到如何在 Ubuntu 18.04、16.04 和相应的 Linux Mint 变体中安装 Android Studio。

在继续安装 Android Studio 之前,请确保你已经在 Ubuntu 中安装了 Java。

在Ubuntu中有多种安装方式

1、使用 Snap 在 Ubuntu 和其他发行版中安装 Android Studio

自从 Ubuntu 开始专注于 Snap 软件包以来,越来越多的软件开始提供易于安装的 Snap 软件包。Android Studio 就是其中之一。Ubuntu 用户可以直接在软件中心找到 Android Studio 程序并从那里安装。

基于linux下Jenkins+gradle+gitlab+Android studio实现APP自动打包详细教程_第4张图片

如果你在软件中心安装 Android Studio 时看到错误,则可以使用 Snap 命令安装 Android Studio。

命令:sudo snap install android-studio --classic

2、不习惯Ubuntu页面?只安装了Ubuntu server版本?同样可以安装Android studio

安装SDK linux 服务器下载, wget http://dl.google.com/android/android-sdk_r24.4.1-linux.tgz

解压tar xvzfandroid-sdk_r24.4.1-linux.tgz

进入Android studio安装目录下的tools目录

执行命令:./android list sdk -a   查看sdk目录

执行命令:android  update sdk -u -t 28 -a 安装第28个文件

安装完成过,要配置环境变量

export ANDROID_HOME=/home/muchenglin/dale/sdk/android-sdk-linux

export PATH=$PATH:${ANDROID_HOME}/tools

export PATH=$PATH:${ANDROID_HOME}/platform-tools

四、安装git

参考文章:https://blog.csdn.net/vslyu/article/details/80337675

五、配置Jenkins

1、将下载好的Jenkins的war包放到tomcat下webapps下​

基于linux下Jenkins+gradle+gitlab+Android studio实现APP自动打包详细教程_第5张图片

2、更改下tomcat目录conf下的server.xml

修改其中的tomcat端口

基于linux下Jenkins+gradle+gitlab+Android studio实现APP自动打包详细教程_第6张图片

保存后,进入到tomcat下的bin目录,执行命令 ./startup.sh,开始运行tomcat

3、打开网址:服务器IP:端口/Jenkins

基于linux下Jenkins+gradle+gitlab+Android studio实现APP自动打包详细教程_第7张图片

基于linux下Jenkins+gradle+gitlab+Android studio实现APP自动打包详细教程_第8张图片

将公钥复制粘贴到Jenkins页面输入框,点击”确定“按钮。

4、输入完成后会提示安装自定义插件还是推荐插件,此处我选择推荐插件,安装过程可能由于网络原因导致失败,后续失败的可以在系统设置-插件管理里面卸载或者重新安装即可。如下图

基于linux下Jenkins+gradle+gitlab+Android studio实现APP自动打包详细教程_第9张图片

5、只要等待安装完成即可,如下图:

基于linux下Jenkins+gradle+gitlab+Android studio实现APP自动打包详细教程_第10张图片

6、选择continue继续设置管理员

基于linux下Jenkins+gradle+gitlab+Android studio实现APP自动打包详细教程_第11张图片

7、创建用户并登陆

基于linux下Jenkins+gradle+gitlab+Android studio实现APP自动打包详细教程_第12张图片

基于linux下Jenkins+gradle+gitlab+Android studio实现APP自动打包详细教程_第13张图片

好了,到这里linux下安装jenkins教程就结束了。

六、Jenkins配置

首先,要确定已经安装了必要的插件,分别为:Android Lint Plugin、Ant Plugin、Git、Gradle Plugin、PUBLISH OVER SSH、Subversion Plug-in、Credentials Binding Plugin、Maven Integration plugin等

1、系统管理-系统设置

修改环境变量:

基于linux下Jenkins+gradle+gitlab+Android studio实现APP自动打包详细教程_第14张图片

第一个环境变量是配置Android SDK,第二个环境变量是配置gradle,第三个环境变量是项目完成打包后需要用到的变量(可不设置)

2、项目配置

(1)点击”新建任务“,输入任务名称,选择”构建一个自由风格的软件项目“,点击左下角”确定“

基于linux下Jenkins+gradle+gitlab+Android studio实现APP自动打包详细教程_第15张图片

(2)点击”源码管理“,复制项目仓库地址,身份信息点击”添加“,

基于linux下Jenkins+gradle+gitlab+Android studio实现APP自动打包详细教程_第16张图片

基于linux下Jenkins+gradle+gitlab+Android studio实现APP自动打包详细教程_第17张图片

基于linux下Jenkins+gradle+gitlab+Android studio实现APP自动打包详细教程_第18张图片

(3)系统管理-全局工具配置,设置jdk、Git、gradle的相关配置,其中jdk的别名任意填写,JAVA_HOME填写Linux中/etc/profile中设置的jdk环境变量。Git的名称任意填写,在Linux下输入whereis git 命令,git根目录的地址填写到Path to Git executable中。gradle要根据你打包的app用到的gradle版本一致,比如前端开发人员开发app时,用到的gradle版本是4.4版本,那这里勾选”自动安装“,其次下面的版本号要选择”Gradle4.4“,点击保存,再点击应用即可自动安装

基于linux下Jenkins+gradle+gitlab+Android studio实现APP自动打包详细教程_第19张图片

(4)再次配置项目,选择构建,勾选上面刚自动安装的gradle版本,再执行shell脚本,内容为

TIME=`date +%F-%H-%M-%S`

echo $BUILD_ID

rm -f /home/muchenglin/dale/jpg/test.jpg

cp /root/.jenkins/workspace/zsd/xiaoyusan/android/app/build/outputs/apk/Xiaoyusan/debug/xys-Xiaoyusan-2.6.6-debug.apk /home/muchenglin/dale/downloading/android/xys-Xiaoyusan-2.6.6-debug.apk

myqr http://192.168.13.88:9090/xys-Xiaoyusan-2.6.6-debug.apk  -n ${BUILD_ID}-test.jpg -d /home/muchenglin/dale/jpg

注释:第一行TIME为获取系统时间,第二行引入BUILD_ID,第三行为删除上次生成的二维码,第四行将编译成功的apk文件拷贝到另外的路径,第五行myqr是将apk文件生成二维码图片,格式为”myqr apk名称 -n 自定义图片名称 -d 图片存放路径“

基于linux下Jenkins+gradle+gitlab+Android studio实现APP自动打包详细教程_第20张图片

(5)构建-高级,Switches输入框输入”clean build --stacktrace --debug“,Root Build script输入框输入linux系统通过git拉取到的项目路径,一定要进入到项目路径中app所在的路径!!Build File输入框填写”build.gradle“即可。

基于linux下Jenkins+gradle+gitlab+Android studio实现APP自动打包详细教程_第21张图片

基于linux下Jenkins+gradle+gitlab+Android studio实现APP自动打包详细教程_第22张图片

(6)选择”构建后操作“,点击”新增构建后操作“,选择”set build description“。Regular expression输入框不需要填写,Description输入框填写”“ 格式为”“。描述为编译完成后,在项目页面显示生成的二维码图片。

基于linux下Jenkins+gradle+gitlab+Android studio实现APP自动打包详细教程_第23张图片

基于linux下Jenkins+gradle+gitlab+Android studio实现APP自动打包详细教程_第24张图片

其次,还要修改最后一点,打开系统管理-全局安全设置,找到标记格式器,选择”Safe HTML“即可。

基于linux下Jenkins+gradle+gitlab+Android studio实现APP自动打包详细教程_第25张图片

至此,所有配置均完成,效果如下图:

基于linux下Jenkins+gradle+gitlab+Android studio实现APP自动打包详细教程_第26张图片

附加(其他网站均未写到二维码如何显示,如何实现下载):

1、二维码图片展示

需要在nginx配置相关代码,如下:

server{

listen       8088;

server_name  192.168.13.88;

location / {

root html;

index    index.html index.htm;

}

location ~ .*\.(gif|jpg|jpeg|png)$ {

root /home/muchenglin/dale/jpg;

expires -1;

}

}

2、扫码自动下载功能

同样需要在nginx中配置相关代码,如下:

server {

listen 9090;

server_name 192.168.13.88;

charset utf-8;

root /home/muchenglin/dale/downloading/android;

location / {

autoindex on;             #开启索引功能

autoindex_exact_size off; # 关闭计算文件确切大小(单位bytes),只显示大概大小(单位kb、mb、gb)

autoindex_localtime on;   # 显示本机时间而非 GMT 时间

}

}

在编译过程遇到的很多坑,百度很多都找不到解决方式,我会在下次的博客中一一举证出来,期望大家有问题可以直接问,感谢!!!

你可能感兴趣的:(基于linux下Jenkins+gradle+gitlab+Android studio实现APP自动打包详细教程)