Jenkins 搭建HmcPlayer自动化编译及自动发版到maven仓
1, 前言
项目开发的过程中,为了集成测试的方便及版本管控需求,经常需要发版给开发 或者测试进行问题的测试验证,Jenkins 可以实现自动化编译,maven仓可以实现版本发布及备份等
下面 主要讲 如何在Jenkins 上搭建一个 自动化编译项目,并在编译成功后自动发版到maven,供其他开发使用。
2,准备工作:
Jenkins 环境
3,如何在Jenkins构建一个自动化编译项目
3.1如何在Jenkins上新建一个项目
点击新建,输入你需要构建的自动化项目名称 比如 HmcPlayer ,点击ok键
点击ok 之后会出现如下
保存 应用之后 会出现如下界面,至此 HmcPlayer项目新建 完成
3.2 配置HmcPlayer 项目 Jenkins的构建参数
点击配置后出现如下界面,依次配置你需要的参数
3.3 配置自动化编译脚本,点击 保存 应用即可
3.4 编译项目 点击如下 Build with Parameters
点击如下 开始构建
构建进度如下
当 构建进度 为红时 代表构建失败否则构建成功
4 如何查看构建失败 日志信息
4.1 查看构建环境变量
至此 HmcPlayer 项目自动化编译搭建完成,下面讲一讲 如何将编译后的 apk / AAR /JAR 包 如何发布到maven仓中。
5 如何将编译后的 apk / AAR /JAR 包 如何发布到maven仓?
5.1 搭建maven仓库
本文介绍的是Sonatype 的 Nexus
5.1.1 java环境
要运行 Nexus,需要 Java 环境,根据教程进行 Oracle Java 安装和配置 即可,配置好环境就可以进行下一步了
5.1.2 下载 Sonytype
到 Sonytype 官网 https://www.sonatype.com/download-oss-sonatype 下载自己所需的平台和版本
本篇介绍的是下载 Linux 环境下的,因为我是在Linux 服务器搭建的maven仓,搭建也可以根据自己的需求进行搭建 大同小异。
5.1.3解压之后 会有类似如下两个目录
nexus-3.14.0-04 这个 文件是存放程序的
sonatype-work这个文件夹是存放仓库和设置等相关内容的,如果备份数据,只用备份这个文件夹即可
5.1.4初次配置,我们只用关注如下几个文件即可
文件 备注
./ nexus-3.14.0-04/bin/nexus 运行程序
./ nexus-3.14.0-04/bin/nexus.rc 用户配置
./ nexus-3.14.0-04/etc/nexus-default.properties 端口配置
初期需要了解的文件就这三个,在 Linux 系统上使用 root 用户直接运行可能会警告,因此可以配置一下nexus.rc文件。至于端口号,默认是 8081,如果对这个没特殊要求,默认即可。
至于 ./ nexus-3.14.0-04/bin/nexus 是主要的运行程序,建议将 bin 目录配置到环境变量中,这样就可以在任意位置启动和停止该程序了,否则只有在 bin 目录下才能调整。
5.1.5 运行
nexus start
如果一切顺利,在等待几十秒到一两分钟之后就可以查看我们的仓库了,如果出错了,可以使用 run 命令来查看具体的出错原因:
#run 命令相当于 debug 模式,会输出所有的日志信息
nexus run
Nexus 还有很多其他命令(例如:停止、重启、查看状态等)
nexus {start|stop|run|run-redirect|status|restart|force-reload}
5.1.6 查看
在输入 nexus start 命令后,稍微等待一两分钟,就可以查看仓库了,如果在本机有图形化界面,直接在浏览器中输入 http://localhost:8081 即可查看,如果修改了端口号,后面写对应的端口号即可。如果是运行在服务器上,则在其他电脑上输入http://{服务器ip}:{port} IP 和对应的端口号。如果运行成功,则会看到类似如下界面:
备注:
在 Linux 和 Mac 上通过 ifconfig 查看本机 IP。
在 Windows 上通过 ipconfig 查看本机 IP。
127.0.0.1(localhost) 是本机回环地址,在其他机器上访问时不要使用这个地址
5.2 仓库配置
经过上面的步骤,我们就有了一个空仓库,但是这个仓库还还需要进行一些基础的配置。
5.2.1 账号配置
点击界面右上角的 Sign In 进行登录。
初次登陆时使用默认账号:admin,密码:admin123。
5.2.2 登录后创建一个新用户
5.2.3 创建仓库 仓库也是在设置中进行创建的
我们用 maven 仓库即可,可以看到,仓库主要有三种类型:
hosted: 本地仓库,我们一般使用这种类型的仓库。
proxy: 代理仓库,用于代理其他远程仓库。
group: 仓库组,用来合并多个 hosted / proxy 仓库。
在一般情况下,我们创建 hosted 类型的 maven 仓库
填写仓库信息
5.3 上传脚本
apply plugin: ‘maven-publish’
apply plugin: ‘maven’
uploadArchives {
repositories {
mavenDeployer {
repository(url: uri("KaTeX parse error: Expected '}', got 'EOF' at end of input: … userName: "{rootProject.ext.repoUser}",
password: “${rootProject.ext.repoPwd}”)
}
pom.groupId = ‘com.pptv.hmc.hmcplayer’
pom.artifactId = ‘libcore’
pom.version = rootProject.ext.repoVersion
pom.packaging = ‘aar’
}
}
}
5.4 添加依赖配置
allprojects {
repositories {
maven { url 'https://jitpack.io' }
// local disk or remote maven
maven { url uri("${rootProject.ext.repoUrl}") }
maven { url "http://maven.hmc.pptv.com:8181/repository/hmcplayer/" }
// youku maven
maven {
url "https://repo.rdc.aliyun.com/repository/28454-release-bMUwSr/"
credentials {
username "kophPk"
password "grBjUv42cL"
}
}
// youku maven snapshot
maven {
url "https://repo.rdc.aliyun.com/repository/28454-snapshot-XEw1RC/"
credentials {
username "kophPk"
password "grBjUv42cL"
}
}
google()
jcenter()
}
}
6,HmcPlayer 发版 上传脚本
至此 Jenkins 搭建HmcPlayer自动化编译及自动发版到maven仓 完成 ,如有疑问 私聊我!345643127@qq.com