乐虎游戏|乐虎国际登录|欢迎你

Android持续集成之Jenkins 部署

日期:2020-03-15编辑作者:计算机资讯

版权表明:本文为博主原创小说,未经博主允许不得转发。

EBET视讯直播,转发请注解出处:

多谢博友分享,那边记录下

用作一名Android程序猿,能偷懒时是迟早要偷懒的。
世家在开垦中必定将遇到过:
测量检验说:帮自身打个包吧,
成品说:帮自身打个包吧,
......说:帮自身打个包吧
此刻的您,正思绪如潮的思辨着逻辑,激情的敲着代码。。。。。。
看完这篇小说今后,你能够一贯对着他们说:本身玩去吧,小编那忙着吗!
jenkins能够让全部人都体验到自身包裹的童趣!
先给我们看一下效果图:

[TOC]

作者的密码7789cc2b62114e9da9fb78b0aa3cb0c8 账号 admin

PG电子游艺 1

有备无患未雨筹划专门的学问如下:汤姆cat8.5下载地址Jenkins下载链接

安装

上去正是干的,首先到Jenkins的官方网址下载 Jenkins按钮会弹出七个版本选拔:LTS Release,Weekly Release。首先说一下那多少个本子,个人以为和MIUI的更新相符,几个支付版本叁个坚固版,大家能够活动接受,成效上大概没分歧。点击尖角号会弹出操作系统,能够筛选相应的操作系统安装,也得以一向下载2.xx.x.war包然后放在汤姆cat(下文少禽详细介绍汤姆cat一些效果与利益)的webapps**目录,新建Jenkins文件夹再归入。

我选用的是Windows安装版的,首先安装版和war版笔者都尝尝过,作用是没分其余,首要的分歧在于目录上,安装版指虞诩装目录之后差不离具备的东西都会在对应的公文夹下生成,比方Jobs,不会在别的磁盘再生成多余的文书夹,而war版放在汤姆cat目录下之后,用浏览器展开,全体的东西会在C盘生成.Jenkins文件夹。笔者自身是有一对网瘾的,心仪目录整洁,不扭转多余文件夹的。还会有一个说辞便是安装版能够不相信任汤姆cat,就算本机未有安装汤姆cat,安装版安装到位后仍然得以用本机ip:port启航。我们能够自动选用喜好的版本。

出于设置部分比较简单,就不上海体育场地了。

123.png

  • 1 将下载的jenkins.war包放至tomcat下的webapps目录

  • 2 浏览器直接访谈如下链接就可以

    ip:tomcatPort/jenkins/

  • 3 看见如下页面后,遵照地点的提示,需求输入暗中认可生成的管理员密码,在极限中输入如下命令

    cat /var/root/.jenkins/secrets/initialAdminPassword

  • 将终端中输出的密码填入输入框,随后点击Continue按键

插件

这里先奉上2篇参谋的稿子地址:
http://www.jianshu.com/p/38b2e17ced73
Jenkins+ Git + Gradle + 二维码生成,二维码与下载链接使用本地汤姆cat作为服务器,超详细!!!
http://blog.csdn.net/mabeijianxi/article/details/52680283
郭霖原创,Jenkins+ Svn + Gradle + 兔南充菜二维码生成 + Python

PG电子游艺 2屏幕快速照相2017-08-17 上午9.51.23.png

1.跻身管理插件

接下去将要说说,Jenkins最精锐的有的之一了,这正是插件。Jenkins提供了这么些多的插件,差不离你想要的插件全有,前提是您能找的到~官方网址提供了插件寻找效率,采取Plugins页就能够各类搜索了。

首要来了:第二回跻身,首先要输入二个密钥来步入Jenkins,接下来...接下来...上图

PG电子游艺 3
setup.png

相符选择第一项即可,会自动安装推荐的插件,注意:这里并非具有插件都能设置成功,有的安装失利也不影响,全部的安装完进行下一步就足以了。

But,不经常候点击现在会产生下边包车型地铁情况

PG电子游艺 4
setup_error.png

怎么点击Retry按键依旧是不当,那时候不要惊恐,大家采纳第一张图中的第二项,举行本人采用,这里系统推荐的插件私下认可也是选中的,间接点安装就可以。But,个别景况如故会冒出上图的不当页面,那么消除办法就是:跻身机关选取页面,清空选项即具有都不选,然后点设置按键,走入下一页。

下一页就是创立顾客页面,这里提出创立顾客,上边提供了Continue as admin按钮也可步向主页,但是后期想成立客户照旧很麻烦的,所以建议创立客商。

开创好客户,就足以步向到主页了~选择系统管理->管理插件->可选插件来初阶安装大家必要的插件。

下边初始大家的Jenkins之旅:

  • 最主要来了,Jenkins最刚劲的性状就是插件,点击上图的Continue后,会进去下边包车型客车页面

2.插件列表

细心:列表中为机要插件,而Jenkins的插件是有依赖关系的,安装一个插件可能要先安装它依据的插件,不然会设置败北。在可选插件勾选列表中的插件就能够,信任插件会自行下载,是否很棒。

  • Git plugin
  • Gradle Plugin
  • Email Extension Plugin
  • description setter plugin
  • build-name-setter
  • user build vars plugin
  • Post-Build Script Plug-in
  • Branch API Plugin
  • SSH plugin
  • mg电子游戏网址,Scriptler
  • Dynamic Parameter Plug-in
  • Git Parameter Plug-In

    配置

    插件安装达成,大家就足以来布局Jenkins了,打包又离大家近了一步。

一.安装(上边安装的,均是指安装在Jenkins服务器下的)

GA电子游戏,先是到Jenkins的官方网站下载https://jenkins.io,点击Download Jenkins按钮会弹出多个版本选取:LTS Release(长时间支撑版本),Weekly Release(周周更新版本)。首先说一下那五个版本,个人以为和MIUI的换代近似,三个开采版本二个稳固版,我们能够活动选拔,功用上大致没分别。点击mg平台娱乐城,尖角号会弹出操作系统,能够筛选相应的操作系统安装,也得以直接下载2.xx.x.war包然后放在汤姆cat(下文少禽详细介绍汤姆cat一些成效)的webapps目录,新建Jenkins文件夹再放入。
本身接受的是Windows安装版的,首先安装版和war版笔者都尝尝过,效用是没差距的,首要的区分在于目录上,安装版指虞升卿装目录之后大概具备的事物都会在相应的文本夹下生成,比方Jobs(即寄存工程目录),不会在其他磁盘再生成多余的文件夹,而war版放在汤姆cat目录下之后,用浏览器张开,全体的东西会在C盘生成.Jenkins文件夹。小编自身是有部分精神分裂症的,心仪目录整洁,不调换多余文件夹的。还恐怕有三个说辞就是安装版能够不依赖Tomcat,就算本机未有安装汤姆cat,安装版安装到位后照旧得以用本机ip:port起步。我们能够活动接受喜好的本子。
鉴于设置部分比较简单,就不上航海用体育场面了。
插件
1.走入管理插件
接下去就要说说,Jenkins最有力的片段之一了,这正是插件。Jenkins提供了要命多的插件,大约你想要的插件全有,前提是你能找的到~官方网址提供了插件寻找效果,选用Plugins页就足以各个搜索了。
重大来了(敲黑板,交合BG视讯直播,~):第一回跻身,首先要输入叁个密钥来进入Jenkins,接下来...接下来...上海体育地方

PG电子游艺 5

setup.png

相仿选取第一项就可以,会自动安装推荐的插件,注意:这里并不是统筹插件都能安装成功,有的安装战败也不影响,全部的安装完进行下一步就可以了。
But,一时候点击将来会时有发生上边包车型大巴情景

PG电子游艺 6

setup_error.png

怎么点击Retry按键仍是似是而非,当时不要惊悸,我们选择第一张图中的第二项,进行谐和挑选,这里系统推荐的插件暗中认可也是选中的,直接点安装就能够。But,个别意况照旧会冒出上海教室的不当页面,那么解决办法就是:走入活动接纳页面,清空选项即具有都不选,然后点设置按键,步向下一页。
PG电子游艺,下一页便是创立客户页面,这里提出创造顾客,下边提供了Continue as admin按钮也可步入主页,可是前期想成立客户如故很麻烦的,所以提出创造顾客。
创制好客户,就足以进来到主页了~选择系统管理->管理插件->可选插件来开端安装大家供给的插件。
2.插件列表
在乎:列表中为注重插件,而Jenkins的插件是有依赖关系的,安装四个插件恐怕要先安装它依赖的插件,不然会安装退步。在可选插件勾选列表中的插件就可以,信任插件会自动下载,是或不是很棒。这里也没怎么才具含量,但是很耗费时间,系统管理->插件管理->管理插件->可选插件: 勾选如下插件:
fir-plugin(可选,fir平台上传二维码时)
Subversion Release Manager plugin(可选)
Subversion Plug-in(可选)
Git plugin
Gradle Plugin
Email Extension Plugin
description setter plugin
build-name-setter
user build vars plugin
Post-Build Script Plug-in
Branch API Plugin
SSH plugin
Scriptler
HABA电子游戏,Dynamic Parameter Plug-in 此插件存在Bug,后边详细说
Git Parameter Plug-In配置
插件安装完结,大家就可以来配置Jenkins了,打包又离大家近了一步。

1.Global Tool Configuration
在系统管理选项中找到Global Tool Configuration步向,若是地方的插件安装成功,在那间寻访到多个板块,如图

PG电子游艺 7

Global_Tool_Configuration.png

个别是JDK,Git,Gradle板块,分别配备那多少个的门道。
JDK:别名=任意,JAVA_HOME=JDK目录
Git:别称=任性, 帕特h to Git executable=Git安装目录bingit.exe
Gradle:别名=任意,GRADLE_HOME=Gradle下载目录Gradlegradle-2.xxGradle尽量配置四个,因为项指标gradle版本大概不等同,所以要求采用差别的Gradle版本举行编写翻译

那几个Gradle的目录,能够是Android Studio默许下载的Gradle目录,在顾客目录的.gradlewrapperdists文件夹下,可是目录不是很卫生;也能够到http://www.androiddevtools.cn找到gradle财富处下载常用的gradle版本,放到一个内定的文书夹,然后配置路线就可以,目录比较清新。
SVN客商安装形似,不再另行。
2.全局品质
在此边最佳布置一下大局属性,这里先说多个,正是配置Android SDK目录,在卷入是有希望会冒出ANDROID_HOME not found的情况,所以在系统管理->系统安装->全局属性版块勾选上Environment variables选料,然后增添

PG电子游艺 8

android_home.png

记念校勘值内的门道为本机sdk目录。
注意:此处的键须求和本机情形变量内的Android SDK目录的键一致
当真配置起来只怕比较繁缛,碰到有个别主题素材,不过多查究搜求都会旗开马到,接下去开启步向正题

PG电子游艺 9荧屏快速照相2017-08-17 晚上9.57.25.png

1.Global Tool Configuration

在系统管理选项中找到Global Tool Configuration步向,假设地方的插件安装成功,在这里间探访到八个板块,如图

PG电子游艺 10
Global_Tool_Configuration.png

个别是JDK,Git,Gradle板块,分别配备那多少个的路子。

  • JDK:别名=任意,JAVA_HOME=JDK目录
  • Git:小名=放肆, Path to Git executable=Git安装目录bingit.exe
  • Gradle:别名=任意,GRADLE_HOME=Gradle下载目录Gradlegradle-2.xx
    Gradle尽量配置四个,因为项指标gradle版本恐怕不相通,所以供给选拔不相同的Gradle版本举办编写翻译

那么些Gradle的目录,能够是Android Studio私下认可下载的Gradle目录,在客商目录的.gradlewrapperdists文件夹下,可是目录不是很卫生;也能够到

二.类型打包

1.创制项目
相差开始打包又近了一步,接下去就起来创办新品类了,点击首页的新建,步向下图分界面

PG电子游艺 11

create.png

给自个儿的种类起个名字,然后选择塑造三个自由风格的软件项目,点击OK按钮,踏入项指标配置界面。
2.项目布署
直接采取源码管理tab恐怕向下滚动找到源码管理,如图;
Git用户:

PG电子游艺 12

source_manage.png

选中Git选择,会现出上海教室的分界面,配置Git项目标U帕杰罗L,笔者测量检验用的是Github项目,並且传输公约选取的是HTTP,需求采取Credentials接受,选取通行证,第一回索要点击Add丰裕通行证,如图:

PG电子游艺 13

credentials.png

Kind类别接受暗许的Username with password,然后在Username和Pasword处治别输入Git账户的客商名和密码,然后滚动到尘间点击Add,然后在Credentials中筛选大家刚才加多的通行证。

SVN用户:
填写svn项目地址,客商名,密码

PG电子游艺 14

image.png

随时滚动到构建Tab,点击增添创设步骤,然后选用Invoke Gradle script,如图:

PG电子游艺 15

build.png

然后配置构建时的Gradle版本,和需求实行的义务,如图:

PG电子游艺 16

build1.png

其一Tasks是先clean工程,然后装进全数门路的Release版本,这是Gradle的吩咐,十分的少说了。然后点击保留开关,马上就能够打包了。
3.始发创设
点击保存后,步向项目分界面,如图:

PG电子游艺 17

project.png

点击左侧菜单栏的立刻构建,初始营造项目,这个时候Build History版块会现出营造职务列表,点击走入能够查看构建详细情况页,如图

PG电子游艺 18

project_build.png

定制想要的职能
1.参数化营造
在大家打包的时候,大家基本上时候不想只是简轻便单打一个版本的包,大家想通过布署一下参数,来知足一些须求,举个例子依照路子打不一致版本的包、依照Tag打分歧的包等,下边就来讲一下Jenkins参数化构建。
在大家项目中供给配置的选项有:版本(Release 或 Debug),版本号,路子包,依照Tag打包。其它大家还亟需丰富打包路子,AS打包仍旧Jenkins打地铁包,还要加贰个时刻戳。全体的参数列出来了,下边就安排Jenkins的参数化营造吧~
在Jenkins项目主页选用配置,步入配置页,在General tab将参数化营造进程选中,如图:

PG电子游艺 19

General.png

接下去就可以拉长参数了,上边我先列出参数表格:
参数名
参数类型
参数值列表

BUILD_TYPE
Choice
Release or Debug

IS_JENKINS
Choice
true

PRODUCT_FLAVORS
Choice
Xiaomi 、Wandoujia等

BUILD_TIME
Dynamic Parameter
2016-12-21-11-11

APP_VERSION
Choice
1.0.0、1.0.1等

GIT_TAG
Git Parameter
tag1.0.0等

下边直接放我的配置截图:

PG电子游艺 20

build_type.png

PG电子游艺 21

product_flavor.png

PG电子游艺 22

app_version.png

PG电子游艺 23

is_jenkins.png

PG电子游艺 24

build_time.png

PG电子游艺 25

git_tag.png

安插完参数还不算完,大家要在世间营造时候引用,首先找到构建标签处,将Tasks属性值改良为:
clean assemble${PRODUCT_FLAVORS}${BUILD_TYPE} --stacktrace --debug

其中${PRODUCT_FLAVORS}
和&{BUILD_TYPE}
各自对应上面的参数名。配置如图:

PG电子游艺 26

build2.png

看了图大家自然在意到了红色框内的取舍并且很离奇吗,那几个选项是APP_VERSION、IS_JENKINS、BUILD_TIME需求运用的,因为那多少个参数须求注入到Android项目中的配置同样,而红色框中的那些选项能够帮大家侵入到gradle.properties文件中替换值,并且build.gradle文件可以直接援用gradle.properties文件中的属性,所以起到了入侵的职能。上边分别是本人的gradle.properties和主项指标build.gradle文件全代码:

//gradle.properties
# Project-wide Gradle settings.
# IDE (e.g. Android Studio) users:
# Gradle settings configured through the IDE *will override*# any settings specified in this file.
# For more details on how to configure your build environment visit
# http://www.gradle.org/docs/current/userguide/build_environment.html# Specifies the JVM arguments used for the daemon process.
# The setting is particularly useful for tweaking memory settings.org.gradle.jvmargs=-Xmx1536m# When configured, Gradle will run in incubating parallel mode.# This option should only be used with decoupled projects. More details, visit
#http://www.gradle.org/docs/current/userguide/multi_project_builds.html#sec:decoupled_projects
#org.gradle.parallel=true

#代码版本管理
VERSION_NAME=1.0.3
VERSION_CODE=5
IS_JENKINS=false

//build.gradle
def releaseTime() {
    return new Date().format("yyyy-MM-dd")
}

/**
 * 获取本地svn版本号,不准,故本地打包不是用svn版本号
 * @return
 */
def getSvnRevision() {
    new ByteArrayOutputStream().withStream { os ->
        def result = exec {
            executable = 'svn'
            args = ['info']
            standardOutput = os
        }
        def outputAsString = os.toString()
        def matchLastChangedRev = outputAsString =~ /Last Changed Rev: (d+)/

        ext.svnRev = "${matchLastChangedRev[0][1]}".toInteger()
    }
    return svnRev
}

/**
 * 根据不同平台来获取版本号
 */
def getSvnRevisionByPlatform() {
    boolean flag = "true".equals(IS_JENKINS);
    if (flag) {
        ext.env = System.getenv()
        ext.svnNum = env.SVN_REVISION?.toInteger()
        return "$svnNum"
    } else {
        return getSvnRevision()
    }
}

......
......
applicationVariants.all { variant ->
                variant.outputs.each { output ->
                    def outputFile = output.outputFile
                    if (outputFile != null && outputFile.name.endsWith('.apk')) {
                        def fileName
                        def nowTime
                        if ("true".equals(IS_JENKINS)) {
                            //jenkins的动态参数插件,存在bug,自动构建时无法获取到时间,这里去掉时间
                            //这里的xxxxxx为自己的项目名称
                            fileName = "xxxxxx_v${defaultConfig.versionName}_${variant.productFlavors[0].name}_${getSvnRevisionByPlatform()}.apk"
                        } else {
                            nowTime = releaseTime()
                            //本地获取svn版本号不准,或者需要导入插件,故本地不获取版本号
                            if (variant.buildType.name.equals('release')) {
                                fileName = "xxxxxx_v${defaultConfig.versionName}_${nowTime}_${variant.productFlavors[0].name}.apk"
                            } else if (variant.buildType.name.equals('debug')) {
                                fileName = "xxxxxx_t${defaultConfig.versionName}_${nowTime}_${variant.productFlavors[0].name}.apk"
                            }
                        }
                        output.outputFile = new File(outputFile.parent, fileName)
                    }
                }
            }

像这种类型在Jenkins打包的时候上面多少个参数就能够趁机接受生成而退换了。
GIT_TAG参数使用安排,只需在源码管理处的Branch引用改为$GIT_TAG
援用参数名,如图:

PG电子游艺 27

git_tag_use.png

参数配置完结,看一下主页面包车型地铁功用呢,*现在立时创设分选产生了 Build with Parameters***,完成图:

PG电子游艺 28

build_with_parameters.png

提示:
假如当选了GIT_TAG中的自便版本都力无法及撤销选中,只好刷新;
还会有使用GIT_TAG时最棒选拔tag版本大于等于帮忙Jenkins打包的版本,因为事情发生前版本代码中没加需求侵入的品质

2.依期打包
出于篇幅原因加上这些功能笔者没用在等级次序中,所以请参见动用Jenkins搭建iOS/Android持续集成打包平台安插营造触发器部分。
3.营造命名
每一趟创设的时候,Build History模块突显是这么的,如图:

PG电子游艺 29

build_history.png

每便构建都只显示数字(#xx),那样很欠雅观,我们想要它展现愈来愈多的新闻如何是好吧?例如参加营造者姓名、创设的app版本、创设的门类等。请看下图:

PG电子游艺 30

set_build_name.png

布局完之后重新卷入,产生了这些样子,如图:

PG电子游艺 31

build_history1.png

是或不是很Nice,当然大家还足以依附需要自动发挥~

5.二维码下载
二维码下载功用,未来互连网海大学部分的做法是通过蒲公英或者fir.im来生成二维码,那七个都是内部测验平台,作者心得过蒲公英,须求将文件传到兔南充菜网址然后他们生成二维码重回,传到别处总感到蹊跷,于是笔者说了算本身生成二维码然后放在下载地址的文件夹中,通过链接显示。
首先要在Computer上设置python遇到,请看http://www.cnblogs.com/yuanzm/p/4089856.html和(Python问题一)python 安装PIL (Python Imaging Library )来张开安装,如若已经安装继续往下看。生成二维码小编用了qrcode那一个库,谢谢大神的分享,那些库怎样选拔就不介绍了,笔者只说一下Jenkins如何履行python。
加多python的意况变量到Jenkins的情况变量中,文章后面有提到过,在系统管理->系统设置中,如图增添python情状变量:

PG电子游艺 32

python.png

注意:键名供给和计算机上系统情形变量内的键名保持一致。
下一场展开项目布局页面,在营造版块点击增多创设步骤,如图:

PG电子游艺 33

add_build.png

在编写制定框内输入qrcode品类的使用命令

PG电子游艺 34

python_build.png

注意:下载地址必要团结拼接,生成路线也急需本人拼接。
如此每一趟打包后都会在生成apk的公文夹内生成一个心领神悟的二维码。扫一扫就能够下载啦~~~
6.创设后操作
塑造完毕后,小编期望将下载地址和二维码放在Build History的版块中,方便下载,那么大家就来设置一下,展开项目布置页,如图操作:

PG电子游艺 35

build_after.png

Description输入框内增加

PG电子游艺 36

<a href=";

7.邮件通告
打完包,作者想公告必要下载的人如何做?发邮件~~Jenkins自带了邮件功用,可是不太好用,所以自个儿接受了Email Extension Plugin本条插件来贯彻发邮件功效(已经在插件列表中)。进入系统管理->系统安装页面,如图:

PG电子游艺 37

PG电子游艺 38

mail.png

邮件格式:
[Jenkins营造公告]$PROJECT_NAME - Build # $BUILD_NUMBER - $BUILD_STATUS!(邮件由Jenkins自动发出,请勿回复~)
项目名称:$PROJECT_NAME
创设编号:$BUILD_NUMBER
创设状态:$BUILD_STATUS
接触原因:${CAUSE}
创设地址:<A HREF="${BUILD_URL}">${BUILD_URL}</A>
营造输出日志:<a href=";
下载地址:<a href=";

二维码下载:

PG电子游艺 39

近年涂改:
${CHANGES, showPaths=false, format="%a:"%m"
", pathFormat="nt- %p"}

末段的作用图是介个样子的:

PG电子游艺 40

mail1.png

  • 这里私下认可选项第一项就可以(有的插件不必然能安装成功,但并不影响Jenkins使用卡塔尔,点击后跻身如下自动安装分界面

2.全局性质

在这里间最棒布署一下大局属性,这里先说一个,正是配置Android SDK目录,在包装是有望会忍俊不禁ANDROID_HOME not found的情况,所以在系统管理->系统安装->全局属性版块勾选上Environment variables选用,然后加多

PG电子游艺 41
android_home.png

记得改过值内的路线为本机sdk目录。

注意:这里的键需求和本机情况变量内的Android SDK目录的键一致

本文由乐虎游戏发布于计算机资讯,转载请注明出处:Android持续集成之Jenkins 部署

关键词:

Git使用简析

推送本地操作 初始化一个本地Git仓库,在需要添加版本控制的文件夹根目录中使用gitinit命令。 添加文件到本地Git仓...

详细>>

如何在移动开发者的寒冬中破冰而出?

世家好,好像有那么几天没写小说了,重要是近日一向很忙,没什么时间放平心态写。 在这里个行业,每间隔一段时...

详细>>

Android WebView基本使用

转载请注明出处: WebView 使用简介 http://blog.csdn.net/lowprofile_coding/article/details/77928614 一 WebView 相关的类 WebView介绍 Andr...

详细>>

Android微信登录、分享、支付

转发要求盛名出处: http://blog.csdn.net/lowprofile_coding/article/details/78004224 前面写过微信登陆分享支付第一版: http://blog.cs...

详细>>