说明:查阅各个介绍Jenkins自动打包的网址,虽然都各有特色,但是按照介绍还是一路遇到很多处坑。经过整理,完成了相对较为准确的教程,如果对各位有帮助就给个好评。谢谢~~~话不多说,咱们开始!!
对于完全第一次接触Jenkins的小白来说,安装和部署Jenkins并不难,唯一相对较难的是gitlab的配置,以及gradle和android studio的配置。咱们一步步慢慢来。
参考地址:https://jenkins.io/zh/doc/book/installing/
Jenkins通常作为一个独立的应用程序在其自己的流程中运行, 内置Java servlet 容器/应用程序服务器(Jetty)。
Jenkins也可以运行在不同的Java servlet容器((如Apache Tomcat 或 GlassFish))中作为servlet运行.
首先要说明下,基于linux安装Jenkins,有多种方式,较为常见的有2种,一是直接在官网下载war包,二是直接在linux中通过yum安装,那么咱们一个个介绍
这里要说明下,无论Linux的内核版本是什么,都下载的是上图红色圈中部分的war包。
通过命令安装
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
此处需要介绍下建议jdk安装版本在1.8.0以上,由于目前Android studio编译过程中会查找相应的资源信息,对于jdk版本较低,会提示资源无法加载(com.android.build.gradle.tasks.BuildArtifactReportTask),谨记!!!
安装tomcat和jdk都可以通过多种方式安装,各位凭借喜好自己选择,通常都是yum安装和手动下载好安装包,然后上传到Linux,这里咱们就看下第二种方式。
首先,打开网址:https://tomcat.apache.org/download-80.cgi
这里大家随意选择一种就好,只是解压的命令不一样而已。
下载完成后,将tomcat上传到Linux中,要是下载的是zip压缩格式的,用命令 unzip apache-tomcat-8.5.46-deployer.zip 。要是下载的是tar.gz压缩格式的,用命令 tar -zxvf apache-tomcat-8.5.46-deployer.tar.gz 解压即可。
其次安装jdk,打开网址:https://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html
这里要看下各位的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 开发 IDE,是带 ADT 插件的 Eclipse 的不错替代品。Android Studio 可以通过源代码安装,但在这篇文章中,我们将看到如何在 Ubuntu 18.04、16.04 和相应的 Linux Mint 变体中安装 Android Studio。
在继续安装 Android Studio 之前,请确保你已经在 Ubuntu 中安装了 Java。
在Ubuntu中有多种安装方式
自从 Ubuntu 开始专注于 Snap 软件包以来,越来越多的软件开始提供易于安装的 Snap 软件包。Android Studio 就是其中之一。Ubuntu 用户可以直接在软件中心找到 Android Studio 程序并从那里安装。
如果你在软件中心安装 Android Studio 时看到错误,则可以使用 Snap 命令 安装 Android Studio。
命令:sudo snap install android-studio --classic
安装SDK linux 服务器下载, wget http://dl.google.com/android/android-sdk_r24.4.1-linux.tgz
解压tar xvzf android-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
参考文章:https://blog.csdn.net/vslyu/article/details/80337675
修改其中的tomcat端口
保存后,进入到tomcat下的bin目录,执行命令 ./startup.sh,开始运行tomcat
将公钥复制粘贴到Jenkins页面输入框,点击”确定“按钮。
好了,到这里linux下安装jenkins教程就结束了。
首先,要确定已经安装了必要的插件,分别为:Android Lint Plugin、Ant Plugin、Git、Gradle Plugin、PUBLISH OVER SSH、Subversion Plug-in、Credentials Binding Plugin、Maven Integration plugin等
修改环境变量:
第一个环境变量是配置Android SDK,第二个环境变量是配置gradle,第三个环境变量是项目完成打包后需要用到的变量(可不设置)
(1)点击”新建任务“,输入任务名称,选择”构建一个自由风格的软件项目“,点击左下角”确定“
(2)点击”源码管理“,复制项目仓库地址,身份信息点击”添加“,
(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“,点击保存,再点击应用即可自动安装
(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 图片存放路径“
(5)构建-高级,Switches输入框输入”clean build --stacktrace --debug“,Root Build script输入框输入linux系统通过git拉取到的项目路径,一定要进入到项目路径中app所在的路径!!Build File输入框填写”build.gradle“即可。
(6)选择”构建后操作“,点击”新增构建后操作“,选择”set build description“。Regular expression输入框不需要填写,Description输入框填写”“ 格式为”“。描述为编译完成后,在项目页面显示生成的二维码图片。
其次,还要修改最后一点,打开系统管理-全局安全设置,找到标记格式器,选择”Safe HTML“即可。
至此,所有配置均完成,效果如下图:
需要在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;
}
}
同样需要在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 时间
}
}
在编译过程遇到的很多坑,百度很多都找不到解决方式,我会在下次的博客中一一举证出来,期望大家有问题可以直接问,感谢!!!