本文章是自己在MacOS下验证搭建基于jenkins持续集成环境,并进行移动端打包的工作笔记
1、下载安装jdk
2、安装Android sdk

- 解压到sdk目录

- 进入cd /Users/liyc/sdk/tools/bin目录,执行adk更新
./sdkmanager --update
- 配置环境变量
sudo vim ~/.bash_profile
export ANDROID_SDK_HOME=/Users/liyc/sdk/android-sdk-mac
export PATH=$ANDROID_SDK_HOME/tools:$ANDROID_SDK_HOME/platform-tools:$PATH
source ~/.bash_profile

3、安装tomcat
tomcat.apache.org/download-80…

- 将压缩包解压到sdk目录
- 进入bin目录,修改sh执行权限,
chmod 777 *.sh - 运行tomcat,
./startup.sh - 访问http://localhost:8080/确认是否安装成功
4、安装gradle
services.gradle.org/distributio…
- 将压缩包拷贝到sdk目录,解压

- 配置环境变量
sudo vim ~/.bash_profile
export GRADLE_HOME=/Users/liyc/sdk/gradle-4.1
export PATH=$GRADLE_HOME/bin:$PATH
source ~/.bash_profile
5、下载jenkins
jenkins.io/download/ 下载war包

-
将war包拷贝到tomcat的webapp目录,重新启动tomcat
-
访问http://localhost:8080/jenkins进行初始化配置
-
输入管理员密码,这个是系统自动生成
cat /Users/liyc/.jenkins/secrets/initialAdminPassword拷贝密码到输入框,继续由jenkins初始化
-
选择安装推荐插件

-
配置,系统管理-Global Tool Configuation。配置jdk和gradle,保存


-
系统管理-系统设置 在全局属性增加
ANROID_HOME配置
-
android打包 新建一个自由风格的任务 设置android工程的svn地址,账号和密码 选择构建工具,gradle-4.1,任务:
app:clean app:assembleRelease保存后即可执行任务
6、扩展知识:
-
提交到svn的工程结构

-
配置app目录下的build.gradle
apply plugin: 'com.android.application'
android {
compileSdkVersion 26
defaultConfig {
applicationId "com.epoint.autopkg06"
minSdkVersion 15
targetSdkVersion 26
versionCode 1
versionName "1.0"
testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
}
signingConfigs {
release {
storeFile file("你的证书文件名,可以是绝对路径和相对路径")
keyAlias "证书别名"
storePassword "存储密码"
keyPassword "证书密码"
}
}
buildTypes {
release {
minifyEnabled false
signingConfig signingConfigs.release
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
//打包出来的文件名修改成-应用id+时间戳+版本号
applicationVariants.all { variant ->
variant.outputs.all {
def today = new Date().format('yyyyMMddHHmmss');
def fileName = "${defaultConfig.applicationId}_"+today+"_v${defaultConfig.versionName}.apk"
outputFileName = fileName
}
}
}
dependencies {
implementation fileTree(dir: 'libs', include: ['*.jar'])
implementation 'com.android.support:appcompat-v7:26.1.0'
implementation 'com.android.support.constraint:constraint-layout:1.0.2'
testImplementation 'junit:junit:4.12'
androidTestImplementation 'com.android.support.test:runner:1.0.1'
androidTestImplementation 'com.android.support.test.espresso:espresso-core:3.0.1'
}