Jenkins+Gitlab+蒲公英 自动化打包安卓 生成二维码 附Java项目自动打包并自动部署服务器运行
说明:为了避免重复劳动,实现自动化的流程。搭建本地jenkins服务器,实现自动化打包流程,从此测试包交给测试人员自己去打就好了,蒲公英等分发平台可实现包转义成二维码或短链接下载。Jenkins功能强大,插件也非常多,坑也非常多,一定要有耐心,我花了一周才把这些坑踩完,坚持相信自己,不要担心跟着我的教程很容易的。大家以后在工作学习中有好的技术也拿出分享 大家一起学习,下面都是我一字一字敲出来的 话不多说小伙伴我们开始吧!作者—胡志强
第一次写博客,大家看到点个赞,全文免费,谢谢我屏幕前的~彭油
需环境
1、java1.8.0-141
2、gradle-6.4.1
3、android-sdk_r24.4.1
4、Git8.0
##这些是必须有的可以去网上搜索安装配置的教程,我就不详细讲了,设置好环境变量就可以了。
##我的已经设置好了

我们开始部署Jenkins服务 ------我用的Linux系统下部署的,Windows,mac 系统都可以
下载jenkins最新版本的war包,一般我们可以通过这个几个链接
http://mirror.xmission.com/jenkins/war-stable/
http://ftp.yz.yamagata-u.ac.jp/pub/misc/jenkins/war-stable/
https://updates.jenkins-ci.org/download/war/

war包,rpm包都可以----------尽量下载最新的版本因为老版本的很多插件不能使用{我使用的是Jenkins2.230版本}--下载完成后上传到服务器中启动。war包 Jenkins默认端口8080 可以在控制平台或者宝塔中开启 不要与Tomcat端口冲突


[root@localhost ~]# nohup java -jar jenkins.war > flowable.log & 后台启动
Tomcat的话将war包直接放入Tomcat路径下的/webapp目录下,直接启动Tomcat的即可
我没有使用Tomcat 可直接启动Jenkins.war包
关闭

[root@localhost local]# netstat -lnp | grep 8080 ##指定端口号 过滤出进程号
[root@localhost local]# kill -9 5152 ## 进程号 杀掉 //
Tomcat的话直接 关闭Tomcat即可
然后在浏览器上访问http://ip:8080/jenkins

命令:cat /root/.jenkins/secrets/initialAdminPassword

启动后,会看到jenkins初始配置页面,这里需要选择安装的插件,例如:我要集成gitlab,所以选择gitlab的插件,后续可以再安装

##进入主页后,点击系统管理->Global Tool Configuration,填写设置好在本地服务器配置的环境变量位置的jdk、git及gradle等

别急还没设置完,还有一步才能让Jenkins和你安装的jdk,gradle等 完美结合
- 进入 →系统管理 →系统设置 找到 Enviroment variables
注:前面安装配置jdk、git及gradle等 会出现很多问题,有问题都是可以解决的,做到这一步这里我们已经成功一半了
下面我们安装所需插件
按照下面的插件列表,搜索并勾选下载安装。务必不要缺失,有些是依赖插件只能多不能少,不要造成后续配置缺少参数选项和部分功能缺失。
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.Upload to pgyer
9.Git plugin
10.GIT server Plugin
11.Gradle Plugin
12.Git Parameter Plug-In
13.Pipeline: Basic Steps
14.Pipeline: Build Step
15.Pipeline: Input Step
16.Pipeline: Nodes and Processes
17.Pipeline: Stage Step
18.Scriptler
19.Workspace Cleanup Plugin
20.Post-Build Script Plug-in
21.Email Extension Plugin
22.SSH Slaves plugin
23.Timestamper
注:
###插件比较多,保证网络状态良好,否则个别容易失败,需要重新安装,有些插件有依赖关系需要注意,下载插件的时候你可以休息下眼睛,等就行了
###如果一直下载失败你可以考虑换一个新的站点。
###如果有些插件找不到的话可以去Jenkins官网找 下载到本地 然后上传到Jenkins上
ps-更换下载源 图下

构建项目配置参数
#现在我们就可以构建项目配置参数了 后面的就简单轻松加愉快了 跟着我的脚步gogo
1、新建自由风格的软件项目

2、给项目起个名称 自定义

3、源码管理配置Git

啥?你说不知道哪个地址 不知道咋查看?没关系我教你呀 先登录你的Gitlab

复制过来后配置你的凭证(拿来吧你小样儿~)

选择账号密码验证 输入你Gitlab的账号密码,你的页面可能跟我不一样,不要迷我的是卡了


到此Jenkins就可以与Gitlab项目关联了,如果报错检查一下Git客户端是否有问题。

4、构建Gradle

这是设置使用Gradle为项目编译打包 选择Gradle5.4.4.1 以上版本不容易出错 应用--保存即可
###上面操作没问题的话我们就可以进行打包了
5、打包安卓
选择你刚配置的项目名称 进行-构建

正在构建打包---时间1-5分钟左右 时间根据项目大小,你要观察控制台输出。


#像老板一样我们只看最后的输出结果成功,就证明我们成功了! 如果构建失败,那里报错了可根据报错信息排查问题,我构建了18次 一点一点解决报错信息 都做到这里多点耐心。
5、验证APK包

我使用的是名字查找安卓的包都.apk结尾 我们去路径下查看下

至此我们打包就完成了,如果要实现将安卓包生成二维码或者短链接别可以扫描直接下载,我们还要继续操作 这个也很快很简单的马上。。。
安卓包生成二维码
因为我们想生成二维码就要借助蒲公英这个平台来实现,当然还有其他方法也能实现我就不一一列举

注册一个蒲公英账号 #必须要实名认证

注册好以后我们先不用,去Jenkins上设置与蒲公英关联一下
进入Jenkins控制界面---找到我们刚才构建打包成功的那个项目 点击配置 我们继续配置

点进去直接拉到最后 找到增加构建后操作 选项 选择Uploda to pgyer with apV1
########如果没有这个选项那就要考虑你插件是否安装成功,重新安装一下插件看看有没有

进入后填写响应信息:请我的标注不要乱改 一定要写对路径 不然蒲公英平台是找不到的

###啥? 不知道怎么查看自己账号的API 来看图
登录刚才注册的蒲公英账号:

点进去查看自己的API 复制下来 进入Jenkins上题写上去 API Key和User Key 不一样别填错框

返回Jenkins配置填写API

找到项目构建
观察控制台输出信息


此时我们已经成功将安卓.apk包上传到蒲公英平台了
登录你的蒲公英平台验收吧!!

到此我们的部署已经完成了 后期项目变了只需要改变Gitlab的项目地址 一键构建就可以直接生成二维码,一次配置终身受用此篇是在我部署发布完成后,回头再写的。遇到问题还不少。比如,代码中gradle 中的版本 和Jenkins上选择的Gradle版本如果不一样有时会打包失败,历经重重困难我们成功了,做完以后你会很有成就感的。
好了就分析到这里文章我写了一下午,下班喽!!!
额外补充!!!
Jenkins+Gitlab 自动化打包java 配置选项
Jenkins所需安装所需maven jdk git







注意:远程需要两台服务器ssh免密
生成密钥文件:ssh-keygen -t rsa
scp -p ~/.ssh/id_rsa.pub root@:/root/.ssh/authorized_keys
脚本文件内容:::
#!/bin/bash
#---------------------------------------------------------------------------------------------
dir="/root/hzq" #jar 生成路径
GREEN="[0;32m"
NO_COLOR="[0m"
RED="[0;31m"
YELLOW="[1;33m"
#---------------------------------------------------------------------------------------------
main(){
echo "...............................jar包开始上传到服务器"
scp $dir/jeecg-boot-module-system-2.1.4.jar root@47.92.235.222:/home/
echo -e "==>${GREEN}jar包上传到服务器完成${NO_COLOR}"
#查询项目进程
JAR_pid=`ssh root@47.92.235.222 ps -ef | grep "jeecg-boot-module-system-2.1.4.jar" | grep -v "grep"|awk '{print $2}'`
if [ -n $JAR_pid ];then
ssh root@47.92.235.222 kill -9 $JAR_pid #杀死项目进程
else
echo "进程不存在可以继续部署"
fi
echo "...............................开始启动服务"
ssh root@47.92.235.222 "nohup /export/server/jdk1.8.0_141/bin/java -jar /home/jeecg-boot-module-system-2.1.4.jar 2>&1 &"
echo -e "==>${RED}服务器部署完成${NO_COLOR}"
}
main





