文章目录
基本:从0开始构建一个安卓项目
1、下载和安装jenkins
①、安装tomcat
②、下载jenkins
下载后是一个 .war 文件,放到 apache 目录下的 webapps 文件夹下
浏览器内输入 http://127.0.0.1:8080/jenkins
先跳过插件安装
接下来设置账号等,配置完成后就可以看到 jenkins 管理界面了
2、插件安装
勾选以下这些插件
Git
Gradle
Email Extension
description setter
Build Name and Description Setter
user build vars
PostBuildScript
Branch API
SSH
Scriptler
Git Parameter
OWASP Markup Formatter:能让 description 中显示 html,例如展示二维码和下载链接
点击 Down now and install after restart,等下载完重启 jenkins 就安装好了
在 Installed 选项卡下可以看到已经安装过的插件,比你自己安装的多,因为很多依赖的插件是自动下载的
3、配置
①、Manage Jenkins -> Global Tools Configuration
设置 JDK
设置 Git
设置 Gradle ,可以设置成固定版本,这里我不设置了,后边加入项目的时候用项目里的版本
②、Manage Jenkins -> Configure System
勾选 Environment variables
,添加 ANDROID_HOME
变量,这个值是sdk路径,可以去系统变量看下填的什么
4、项目配置
①、点击左侧 New Item 来新建一个项目
输入项目名称,选择 Freestyle project
②、Source Code Management
选择 Git,填入项目地址
Credentials add 一个用户,填入 git 账号信息
③、Build
Build 中选中 Invoke Gradle Script,Task 填写 clean assembleRelease --stacktrace --debug
(清理build文件夹,编译并打Release的包,打印堆栈日志,调试模式)
5、项目构建
点击保存就进入到项目主页了,点击 Build Now 开始构建,Build History 会出现构建任务列表,点击进入可以查看构建详情页
如果前边的圆圈变成红色说明构建失败,点击进入构建详情页,然后点击左侧 Console Output 查看日志输出
因为信息比较多,可以直接搜索 What went wrong
,找到报错原因
如果圆圈变为蓝色说明构建成功,可以在 Workspace -> app/build/outpus 找到apk
进阶:定制想要的功能
自定义属性配置
以上就完成了简单的部署和构建。但还不是我们的最终目的。我们想通过配置一下参数,来满足一些需求,比如根据渠道打不同版本的包、根据Tag打不同的包等,下面就来说一下Jenkins参数化构建
在项目的 gradle.properties 中,我们有 VERSION_CODE
和 VERSION_NAME
COMPILE_SDK_VERSION=29
BUILD_TOOLS_VERSION=29.0.2
APPLICATION_ID=com.szy.supermarket
MIN_SDK_VERSION=19
TARGET_SDK_VERSION=29
VERSION_CODE=1
VERSION_NAME=1.0.0
MAVEN_URL=https://dl.bintray.com/yishopcustomer/maven/
android.useAndroidX=true
android.enableJetifier=true
在 build.gradle 中会用到
apply plugin: 'com.android.application'
......
android {
......
defaultConfig {
multiDexEnabled true
applicationId APPLICATION_ID
minSdkVersion MIN_SDK_VERSION
targetSdkVersion TARGET_SDK_VERSION
versionCode VERSION_CODE as int
versionName VERSION_NAME
ndk {
abiFilters 'armeabi'
}
testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
}
......
productFlavors {
szy {
applicationId 'com.xx.xx'
manifestPlaceholders = [
app_name : "云小店正式",
......
]
}
szytest {
applicationId 'com.xx.xx'
manifestPlaceholders = [
app_name : "云小店测试",
......
]
}
}
}
......
项目设置主页 -> General -> 勾选 This project is parameterized
下面开始添加参数
参数名 | 参数类型 | 参数值列表 |
---|---|---|
GIT_TAG | Git Parameter | dev、master等 |
BUILD_TYPE | Choice | Release or Debug |
PRODUCT_FLAVORS | Choice | Xiaomi、Huawei等 |
VERSION_NAME | String | 1.0.0 |
<