前言:前段时间因项目需要捣拾了一下Jenkins自动化打包,过程中遇到了很多的坑,在此记录一下。因为这篇博客是之后写的,所以有些具体的坑就不能回显了。

一,实现的功能

选择版本号,git 分支,渠道,服务器地址,指定apk输出目录条件生成apk

二,Jenkins的安装

1,Tomcat下载 ,下载地址:https://tomcat.apache.org/

2,Jenkins下载,下载地址:https://jenkins.io/download/

Jenkins 的安装在这里就不做过多的赘述,网上有很多可查阅的资料,本片博客主要是想记录一下遇到的坑。希望对其他小伙伴们能够有所帮助。

安装完之后是这个样子的

三,配置Jenkins

     

   点击Manage Jenkins 主要配置三个地方

1,Manage Plugins

        插件安装:Jenkins安装过程中会有提示安装插件,如果插件安装错误可在这里修改。Jenkins的插件是有依赖关系的,安装一个插件可能需要安装它所依赖的插件,否则会安装失败。勾选需要安装的插件,插件会自动安装。一般需要安装的插件的目录如下:

1.Branch API Plugin
2.build timeout plugin
3.build-name-setter
4.Credentials Binding Plugin
5.description setter plugin
6.Dynamic Parameter Plug-in
7.Environment Injector Plugin
8.Git plugin
9.GIT server Plugin
10.Gradle Plugin
11.Git Parameter Plug-In
12.Pipeline: Basic Steps
13.Pipeline: Build Step
14.Pipeline: Input Step
15.Pipeline: Nodes and Processes
16.Pipeline: Stage Step
17.Scriptler
18.Workspace Cleanup Plugin
19.Post-Build Script Plug-in
20.Email Extension Plugin
21.SSH Slaves plugin
22.Timestamper
如果你使用的SVN 还需要安装
Subversion Plug-in
Subversion Release Manager plugin

   2,Configure System

   

 

全局配置ANDROID_HOME,

 Name: ANDROID_HOME

Value: SDK所在的目录

 在环境变量中配置ANDROID_HOME,注意两个位置的ANDROID_HOME的配置一定要保持一致

3,Global Tool Configuration

  

  主要配置上面截图中的三个地方JDK,Git,Gradle有些小伙伴可能会发现自己的jenkins中这三者中可能会少了某一个,造成这   个的原因应该是前面安装插件出了问题,返回到前面检查一下

  注意:

1,JDK的版本不能太低,Jenkins的高版本要求JDK要是1.8以上

         2,Gradle:我这里选择的是Install antomatically 表示根据选择自动安装Gradle,你也可以根据自己本地有的Gradle版本配置。可以配置多个以应对多个Gradle版本

  四,开始一个新工程

       

   1,点击 New Item,输入工程名点击Freestyle project 创建一个新工程

   2,配置新项目



直接选择代码管理 Source Code Management,

1>需要输入代码管理的路径,我用的是Gitlab管理的

  2>添加通行证,第一次使用需要点击add 添加Kind使用默认的Username with password。

      Username: Git账户的用户名

Password: Git账户的密码

 

  滚动到Build ,我这里使用的是 Use Gradle Wrapper,然后在Task任务栏中输入Gradle打包命令行

  clean assembleRelease:表示先clean 项目在打出所有的渠道包

3,点击保存,开始构建项目

     回到jenkins的主目录找到之前创建的工程,点击进去,点击Build,开始构建项目如果前面配置的信息都是正确的这个时候就可以看到打包成功了如果失败了,点击当前构建,点击Console Output查看错误日志

   五,参数化构建项目

         重点来了,定制属于你自己的自动化



    1,勾选 This project is parameterized (参数化构建项目),点击  Add Parameter ,常用的一般是图中标出的两个。第一个是Boolean类型的参数,第二个是选择类型的参数选择第二个如下配置

  

   以此类推,你可以配置你的版本号,对应的Git分支,服务器地址等等。。常用的参数如下

参数名 参数类型 参数对应的值
APP_VERSION Choice 1.0.0  (版本号)
BRANCH Choice dev/1.0.0 (Git对应分支)
PRODUCT_FLAVOR Choice Xiaomi,Huawei  (渠道)
IS_JENKINS Choice true  (来自Jenkins打包)
BUILD_TYPE Choice Release ,Debug
APP_SERVER Choice 服务器地址

   2,完善代码管理

  

注意:Branches to build 这一栏{}中的字段一定要与上面配置的Git分支字段相对应

3,将参数注入到Android项目的Gradle文件中,这一步很重要。

1, Task任务栏变更:打出对应的渠道包,我这里打的都是正式包

2,勾选 Pass all job parameters as Project properties ,这一步很重要,这一步就是将配置参数注入到Gradle文件中

注意:刚开始弄Jenkins时参考了很多资料,很多说的是勾选 Pass job parameters as Gradle  properties.但是我的Jenkins中却没有这一项,很多人的说法是添加命令行的方式,但是我试着勾选了图中的那一项也是可以的。

好了,上面的参数配置都已经配置完了,点击保存回到我们的工程,会发现之前的Build,变成了Build with Parameters.点击进去就可以看到你前面配置的参数选项。到这里还没完我们继续。

  六,配置Gradle

        1,Android Studio打开Android 本地项目,找到gradle.properties文件。将前面配置的参数配置进去

注意:标红框的位置要添加上,是一个缓存路径。不添加的话很可能会报错。具体的错误描述记不清了。大致是说需要查找的文件路径超出了window的文件路径长度。

2,配置build.gradle文件

buildConfigField "String", "API_SERVER", API_SERVER

上面这一段代码要注意,是动态配置到BuildConfig文件里的。我这里是在release,debug版本都配置了是为了动态写入Jenkins配置的服务器地址。

生成的apk:

1,指定了apk输出的路径

2,修改了生成apk的名称,按照:“demo”+输入路径文件夹大小+1+".apk"格式

3,获取Jenkins配置的服务器地址:

   String baseUrl = BuildConfig.API_SERVER;

可能有些小伙伴有些疑惑:BuildConfig里没有前面配置的参数,因为BuildConfig文件是自动生成的,你需要build一下。至此,所有的配置都配置完了,回到Jenkins就可以开始你的自动化打包了。

  七,满满的都是泪

       1,前面已经说过的,window系统需要在gradle.properties文件中加入android:buildCacheDir = "xxx"

       2,Jenkins中配置参数时有说到配置服务器地址并且动态写入到BuildConfig文件中,地址类型时String类型的,需要加上“”,例如:www.baidu.com,需要写成“www.baidu.com”。否者在BuildConfig文件中左边声明的是String类型的但是右边的却不是字符串,不知道是不是我自己在配置的过程中出了什么差错,欢迎小伙伴们留言。

3,If you are using NDK, verify the ndk.dir is set to a valid NDK directory. It is currently set to xxx\SDK\ndk-bundle.If you are not using NDK, unset the NDK variable from ANDROID_NDK_HOME or local.properties to remove this warning. 这个问题可以忽略不会影响编译结果(ps在我这边是可行的)

在配置过程中遇到的点点滴滴的坑还是挺多的,距离上一次的配置有一段时间了大都忘记了。希望能够帮助到其他的小伙伴,也欢迎指正文中不足或是错误的地方。

Android jenkins 自动化打包相关推荐

  1. win10 jenkins svn android studio 自动化打包教程 以及一些问题的解决办法

    win10 jenkins svn android studio 自动化打包教程 这两天搭建jenkins自动构建环境,中间遇到点坑坑洼洼 分享出来希望后来人少走些弯路 准备软件 jenkins.ms ...

  2. gitlab+jenkins自动化打包APK

    前置条件: 环境搭建,jenkins需要的插件看这里: gitlab+jenkins自动化打包IOS 配置思路: step1: 搭建sdk,gradle运行环境,参照: CentOS7下安装安装and ...

  3. iOS - mac环境Jenkins自动化打包并上传蒲公英分发从0到1详细搭建过程,自我的实践记录

    第一过程 :  环境的相关配置条: 0. mac 电脑,系统版本为为 10.14.5 1. 升级ruby环境: 我用的是  rvm 1.29.9,可在终端 用  rvm -v 查看当前版本. 2. 安 ...

  4. Android-使用Jenkins自动化打包详解-Linux篇

    文章目录 购买和使用阿里云 安装宝塔面板 安装Tomcat 安装 jenkins 配置jenkins 设置FTP jenkins 常规操作 修改admin密码 购买和使用阿里云 首先购买阿里云,可从以 ...

  5. jenkins自动化打包android,Android使用Jenkins实现自动化打包

    8种机械键盘轴体对比 本人程序员,要买一个写代码的键盘,请问红轴和茶轴怎么选? Android项目开发过程中,每次测试打包都会浪费较长的时间,为了能节省时间.将精力更多的放在代码编写上, 可利用Jen ...

  6. Android自动化打包——Jenkins自动化打包工具(Mac平台)

    Jenkins是一个开源软件项目,是基于Java开发的一种持续集成工具,用于监控持续重复的工作,旨在提供一个开放易用的软件平台,使软件项目可以进行持续集成.改文章,我们通过使用Jenkins自动化工具 ...

  7. 使用jenkins自动化打包部署Vue项目。详细教程。

    此教程 jenkins是直接部署到linux服务器上.服务器系统:CentOS 7.3 64位. 流程:jenkins关联码云仓库,点击立即构建,执行shell进行构建,打包,把打包后的dist目录文 ...

  8. jenkins自动化打包部署,jenkins执行sh脚本不退出问题

    介绍 Jenkins是开源软件项目,主要用来自动化打包部署.使用jenkins彻底告别手动部署的麻烦与繁琐. 安装部署jenkins 官方下载地址 启动jenkins war包 登入jenkins 设 ...

  9. Jenkins自动化打包生成二维码下载链接

    在自动化打包流程中,Jenkins是一个不错的工具,可以帮助我们省去很多的打包和部署问题,解放了双手.通常,使用Jenkins 打包好的 apk 文件,我们可以上传到tomcat或者httpd所在服务 ...

最新文章

  1. 数据可视化与数据预处理
  2. jquery内核学习(6)--扩展实现extend
  3. 你必须会的启发式搜索算法--A*算法
  4. Nginx静态资源盗链的效果展示
  5. python 当前目录_virtualenvwrapper打造多版本Python环境
  6. 随机抽样java_实现随机抽样【随机数生成问题】
  7. MongoDB 教程 | 菜鸟教程
  8. 使用js获取ajax对象,JS获取dom 对象 ajax操作 读写cookie函数
  9. AD 20中文软件安装教程
  10. 关于文件变化监听, 你了解多少?
  11. Python爬虫 | 爬虫基础入门看这一篇就够了
  12. EasyExcel3.0.5 解决大数据导入导出,防止OOM
  13. 计算机方向的综述投稿哪个期刊,人工智能方向论文投稿期刊
  14. Android背景设置透明和半透明效果
  15. 【分析BMI指数~python】
  16. ios 通讯录 通过电话号码 查询姓名
  17. 计算机的硬盘维修,四大电脑硬盘常见错误及修复方案
  18. 2021.5.16数仓之用户画像表模型设计
  19. EOS账户如何工作,我们怎样获得EOS账户?
  20. Android 实现QQ侧滑界面之实现

热门文章

  1. python中range函数是什么意思_python中range什么意思
  2. Android手机卡顿原因
  3. 数据结构---线性表
  4. oracle ocp认证指南,OCP认证考试指南(三):创建Oracle数据库
  5. oracle OCP考点在哪,Oracle OCP认证考哪几门
  6. Python中的数值运算与逻辑运算
  7. python display 报错_Python中的函数(三)
  8. 利用pytorch 做一个简单的神经网络实现sklearn库中莺尾花的分类
  9. zcu104 AXI DMA速度测试总结
  10. 微信小程序实现手机屏幕左右旋转,页面元素左右移动,小程序加速计