jenkins+gitlab实现Android自动打包填坑之旅

一.背景

1.首先你需要知道你想要实现的Android自动打包的Android项目的一些环境配置及需要使用的一些开发版本。

声明:本文 Android项目基于:1.jdk11 2.SDK无要求 3.gradle无要求(同Manven一样为项目自动化构建开源工具)

注:本文适用于 任何版本 jdk SDK Gradle。

了解Android项目使用到的东西就可以开始干活了.......... xixi


二.基本软件安装

软件安装网上有大量教程这里不再赘述。

1.gitlab

2.jenkins

3.Android Studio(为啥要下这个?当然是为了更方便的安装SDK)

3.1 简要概述如何使用Android Studio下载SDK

本人非Android开发程序员,若有表述不当,嘿嘿。。

打开Android Studio你会看到Preference这个选项

有人可能要问为啥下这么多SDK?这我又哪知道一个Android项目里面要用不同版本的SDK。总之,你Android项目中涉及到哪些就下啥吧。

4.本地gradle安装(温馨提示:看看后面Android自动打包的不同方式再决定是否安装,有一种方式不需要下载gradle,可以让gekins帮你安装)

本文不详细阐述安装过程,具体可以看看网上其他资源。注意红色字体,可能会是你的坑...heihei

1.下载好需要使用的gradle的安装包,并解压

2.配置好环境变量(就是把你的gradle解压后的文件目录配置/bin 到$PATH这个全局变量里)

3.使用gradle -v检查是否能显示版本信息(确保解压后的bin目录下的gradle可执行文件,在当前用户下具有可执行权限)

5.本地git安装

三.正题---新建任务开启Android打包自动化。

言归正传 下面我们讨论实现Android自动化打包的几种方式。

3.1 gekins 插件安装

安装要使用到的一些插件像git gitlab gradle这些的插件就是基本的。这里就不在赘述(如果你看见你的与我的jenkins相比少了一些选项就是插件不全导致的)

3.2 系统管理 -》系统配置

主目录:

Jenkins访问路径:一般为 电脑ip+端口

环境变量配置:ANDROID_HOME

3.3 系统管理 -》全局工具配置

1.jdk

2.git

3.gradle

3.4 新建任务

该我说话了:你还要把生成的公钥放大gitlab上。不知道的推荐看看下面这篇

https://www.cnblogs.com/dotnet261010/p/12393917.html

存在坑:可能按照要求添加凭据后仍然无法连接到gitlab

1.首先你要确保git在本地安装好了 git --version

2.参考这篇文章或许对你有帮助 jenkins 配置git 提示"无法连接仓库:Command "git ls-remote -h -- gitxxxxxxxxx status code 128"_jekins 无法访问仓库地址-CSDN博客

3.5 最终一步:build Step

gradle和gradlew打包方式的区别:开胃甜品 heihei~

八、Mac 配置 gradle和 ./gradlew 命令 - 简书

gradle:打包的方式:你可理解为需要借助你本地的gradle

建议:可以先在本地配好一个gradle,然后通过终端命令行的方式输入命令看看是否能打包。只有你通过终端命令行的方式打包成功,你上面配置才会可能。

gradlew打包的方式:你可以理解为使用项目内的gradle(注:这里他会自动的去下载gradle )

可能出现的问题:Downloading https://services.gradle.org/distributions/gradle-5.1.1-bin.zip Exception in thread "main" java.net.ConnectException: Operation timed out

因为这玩意儿是在github.com上的,慢的很,所以会出现超时的情况。

所以建议选择使用gradle命令打包的方式,使用自己已经安装好的gradle

迫不得已,逼上绝境

上面两种方式都是借助jenkins中的gradle环境,虽然第一种下载了gradle在本地,但是第一二种方法都不需要在本地配置gradle环境 。

那么如果你能在本地配置好gradle后,可以通过终端命令进行打包的话,那么方案三来了。

方案三: 通过执行shell脚本,来打包(需要配好本地环境)

这里我们不再选择Invoke Gradle script而是执行shell

MTS_Clien.sh脚本

bash 复制代码
# !bin/bash

cd /Users/lilei/.jenkins/workspace/MTS_Client/MTS_Client
sleep 1
gradle clean
sleep 1
gradle assembleRelease

最后若有疑问可在评论区讨论。 滴滴 heihei~

相关推荐
安卓理事人6 小时前
安卓LinkedBlockingQueue消息队列
android
万能的小裴同学8 小时前
Android M3U8视频播放器
android·音视频
q***57748 小时前
MySql的慢查询(慢日志)
android·mysql·adb
JavaNoober8 小时前
Android 前台服务 "Bad Notification" 崩溃机制分析文档
android
城东米粉儿9 小时前
关于ObjectAnimator
android
zhangphil10 小时前
Android渲染线程Render Thread的RenderNode与DisplayList,引用Bitmap及Open GL纹理上传GPU
android
火柴就是我11 小时前
从头写一个自己的app
android·前端·flutter
lichong95112 小时前
XLog debug 开启打印日志,release 关闭打印日志
android·java·前端
用户693717500138413 小时前
14.Kotlin 类:类的形态(一):抽象类 (Abstract Class)
android·后端·kotlin
火柴就是我13 小时前
NekoBoxForAndroid 编译libcore.aar
android