森林里的新工坊
小安卓熊的手工打包作坊最近总是加班 —— 每次发布新版本,他都得守在电脑前敲命令,眼睛熬得像两颗红樱桃。直到有一天,森林深处飘来一朵带着齿轮的云,上面写着 "Jenkins 工坊" 四个金字。
"这是能让小工匠自动干活的魔法屋哦。" 拄着拐杖的 Jenkins 老爷爷笑着说,"里面的小工匠会自己下载代码、搅拌编译、封装 APK,最后还会把成品送到你手上。"
第一章:搭建工坊地基(环境准备)
要盖起 Jenkins 工坊,得先准备三样神奇材料:
1. 魔法能源(JDK)
小工匠们靠 Java 能量运转,就像汽车需要汽油:
- Linux 系统的话,念咒语安装:
yum install -y java-1.8.0-openjdk-devel.x86_64 - 检查能量是否充足:
java -version(出现版本号就说明成功啦)
2. 代码传送门(Git)
用来从代码森林搬运原料的工具:
bash
# 安装Git传送门
yum install curl-devel expat-devel gettext-devel openssl-devel zlib-devel gcc perl-ExtUtils-MakeMaker
# 测试门是否能打开
git --version
3. 安卓工具箱(SDK 与 Gradle)
这是小工匠们的专属工具包:
-
先建个工具箱:
mkdir /opt/android /opt/gradle -
下载 Android 魔法手册:
wget https://dl.google.com/android/repository/commandlinetools-linux-7302050_latest.zip -
解压后,小工匠需要知道工具箱在哪,得把位置写进森林公告栏(环境变量):
bash
# 打开公告栏编辑
vi /etc/profile
# 新增这几行咒语
export ANDROID_HOME="/opt/android"
export GRADLE_HOME="/opt/gradle"
export PATH="$ANDROID_HOME/tools:$ANDROID_HOME/platform-tools:$GRADLE_HOME/bin:$PATH"
# 让公告生效
source /etc/profile
第二章:召唤 Jenkins 老爷爷(安装 Jenkins)
1. 搭建云朵城堡
在 Linux 系统里,用 yum 咒语召唤城堡:
bash
# 画个魔法阵
wget -O /etc/yum.repos.d/jenkins.repo https://pkg.jenkins.io/redhat-stable/jenkins.repo
rpm --import https://pkg.jenkins.io/redhat-stable/jenkins.io.key
# 建造城堡
yum install jenkins
2. 给城堡换门牌号
默认门牌号 8080 可能被占用,改个新的:
bash
vi /etc/sysconfig/jenkins
# 找到JENKINS_PORT,改成2021(像给城堡换个好记的门牌号)
JENKINS_PORT="2021"
3. 唤醒 Jenkins 老爷爷
bash
service jenkins start
这时浏览器输入http://你的服务器IP:2021,会看到一个带锁的门。钥匙藏在/var/lib/jenkins/secrets/initialAdminPassword里,复制粘贴就能进门啦。
第三章:招募小工匠(插件安装)
Jenkins 老爷爷的城堡里,需要招募几位擅长不同手艺的小工匠:
-
Git 工匠:负责从代码仓库搬原料(插件名:Git)
-
Gradle 工匠:搅拌代码糊的专家(插件名:Gradle Plugin)
-
安卓工匠:熟悉 SDK 工具箱的大师(插件名:Android SDK Plugin)
-
通知小邮差:打包完成后送信的使者(插件名:企业微信 / 钉钉插件)
安装方法很简单:在城堡的 "插件管理" 里搜索名字,点 "安装" 就好。就像给工坊招聘员工,招对人才能高效干活~
第四章:布置工作间(任务配置)
小工匠们需要一个清晰的工作清单,这就是 Jenkins 里的 "任务":
1. 新建工作牌
在城堡首页点 "新建任务",给任务起个名字(比如 "小熊 APP 打包"),选 "自由风格软件项目"—— 这就像给小工匠们挂了块写着工作内容的牌子。
2. 原料仓库地址
告诉小工匠从哪搬代码:
plaintext
源码管理选Git,填写仓库地址(如https://github.com/你的用户名/你的项目.git)
如果仓库有密码,点"添加"按钮设置凭证(就像给仓库大门配钥匙)
3. 开工信号器
设置什么时候让小工匠开始干活:
- 选 "触发远程构建",填个暗号(比如
android_build_666)—— 以后用这个暗号就能远程叫他们开工 - 或者勾选 "GitHub hook trigger",这样代码仓库有新提交时,会自动发信号
4. 魔法配方(构建步骤)
这是最关键的一步,相当于给小工匠们的制作说明书:
点击 "增加构建步骤→Execute shell",写下咒语:
bash
# 告诉小工匠SDK工具箱在哪
export ANDROID_HOME=/opt/android
# 开始搅拌代码糊(clean是洗锅,assembleRelease是烤出正式版蛋糕)
./gradlew clean app:assembleRelease
5. 成品存放处
打包好的 APK 要放在显眼的地方:
点击 "增加构建后操作→Archive the artifacts",填写:
plaintext
app/build/outputs/apk/release/*.apk
这样成品就会被摆在工坊的展示架上啦。
第五章:小工匠的工作日记(避坑指南)
小工匠们虽然能干,但也有几个容易犯迷糊的地方:
-
SDK 版本坑:如果打包时说 "找不到 build-tools",是因为 SDK 工具箱里少了工具。解决方法是用
sdkmanager --install "build-tools;29.0.2"安装对应版本(版本号要和项目里的一致)。 -
版本号陷阱:和 GitHub Actions 一样,版本号最好是三位(如 1.0.0),两位的话小工匠可能会假装没看见~
-
权限问题:Linux 系统里要给 Jenkins 足够的权限,不然小工匠会说 "没权限访问文件"。可以在
/etc/sysconfig/jenkins里把 JENKINS_USER 改成 root 试试。 -
网络魔法:Gradle 下载依赖太慢时,给它换个国内仓库(就像给小工匠换条不堵车的路),在项目的
build.gradle里添加:
groovy
maven { url 'https://maven.aliyun.com/repository/central' }
maven { url 'https://maven.aliyun.com/repository/google' }
尾声:下午茶时间的惊喜
配置好的那天下午,小安卓熊正在树下吃蜂蜜,突然收到企业微信消息:"您的 APP 已打包完成,下载链接 xxx"。他登录 Jenkins 城堡一看,展示架上果然摆着新鲜出炉的 APK,旁边还有小工匠们的工作记录(控制台输出)。
"原来自动化打包这么简单!" 小熊捧着 APK,开心地转了个圈。从此,他每天都有下午茶时间,而 Jenkins 工坊的小工匠们,还在不知疲倦地为森林里的每个 APP 忙碌着~