如何使用Jenkins构建Android应用

来自菜鸟教程
跳转至:导航、​搜索

在本文中,将设置 Jenkins 来构建 Android 应用程序。 Jenkins 已经需要安装了,所以如果还没有安装,请先按照here的步骤进行操作。 对于本文,我假设您的项目使用 Git 或 Subversion 等版本控制。 我将主要讨论名为 Gradle 的新构建系统,但本文也可用于设置 Ant 构建。

安装所需的软件


首先,应安装 Android SDK。 要查找下载位置,请访问Android SDK 下载页面。 然后点击其他平台的下载并复制Linux版本的链接(仅限SDK工具)。

复制链接后,切换到 SSH 会话。 将 CD 放入 /opt 并下载 Android SDK:

cd /opt
wget <link you copied here>

在撰写本文时,应执行以下命令:

wget http://dl.google.com/android/android-sdk_r22.3-linux.tgz

然后解压文件:

tar zxvf <filename of the just downloaded file>

您现在可以删除刚刚下载的文件:

rm <filename of the just downloaded file>

现在需要设置一些环境变量。 编辑 /etc/profile.d/android.sh (nano /etc/profile.d/android.sh) 并添加以下内容:

export ANDROID_HOME="/opt/android-sdk-linux"
export PATH="$ANDROID_HOME/tools:$ANDROID_HOME/platform-tools:$PATH"

然后重新加载文件:

source /etc/profile

如果你打算使用 Git,还要安装 Git:

sudo apt-get install git-core

配置 Android SDK


要构建您的项目,Android SDK 将需要一些包。 首先,更新 SDK 本身(需要接受一些许可证):

android update sdk --no-ui

这将安装 all Android 版本,所以它会相当长的时间。 如果您不想安装所有软件包,请阅读更多信息。

如果您只想安装特定部分,有关更新 SDK 的更多信息,请参阅 this StackOverflow question。

您最可能需要的软件包通过以下命令安装(将 android-19 中的“19”替换为最新的 Android SDK 版本:

android update sdk -u --filter platform-tools,android-19

但是,这不会安装 Gradle 所需的构建工具。 为此,请执行以下命令:

android list sdk --all

在此列表中,找到名为 Android SDK Build-tools 的第一项,版本 xx.xx.xx。 记住项目之前列出的数字并执行以下操作:

android update sdk -u --all --filter <number>

也为 Android Support Repository 和 Android Support Library 执行此操作。

如果您知道您的项目将使用特定版本的构建工具,请在列表中查找该项目。 在 build.gradle 文件中可以看到 buildToolsVersion:

android {
    buildToolsVersion "18.1.1"
    compileSdkVersion 18
}

还要安装适当的平台版本,可以在 build.gradle 中看到作为 compileSdkVersion。

现在,为了让 Jenkins 可以访问 Android SDK,执行以下命令:

sudo chmod -R 755 /opt/android-sdk-linux

此外,如果您使用的是 64 位操作系统,请安装 32 位库:

sudo apt-get install ia32-libs

然后重新启动你的 Droplet:

sudo shutdown -r now

配置您的 Android 项目


如果您的项目仍由 Eclipse 构建,则需要创建构建脚本。 最简单的选择是直接从 Eclipse 中执行此操作,方法是转到 File -> Export,然后选择 Android -> Generate Gradle build files。 然后选择项目并单击完成。 这应该创建一个可以由 Jenkins 构建的 Gradle 项目。

如果你不想使用 Gradle,Apache Ant 仍然可以使用。 如果您不知道这是什么或 Gradle 项目导出失败时,您可以跳过此步骤。 唯一需要的步骤是在安装了 Android SDK 的 PC 上执行以下命令:

android update project -p .

配置詹金斯


Jenkins 也需要配置。 首先,需要安装 JDK。 为此,请访问管理 Jenkins -> 配置系统。 然后找到JDK并单击添加JDK。 您需要有一个 Oracle 帐户。 要输入您的凭据,请单击请在 JDK 部分输入您的用户名/密码。 如果您没有,请点击下一个屏幕中的链接。 输入这些内容后,返回 JDK 配置。 输入名称——我建议以 Java 版本命名。 然后选中自动安装并选择最新的 Java SE Development Kit 版本。 这应该稍后安装 JDK。

如果您使用的是 Ant,请执行 Ant 部分中的相同步骤。

现在访问管理 Jenkins -> 管理插件 -> 可用。 检查以下插件并单击安装而不重新启动:

  • Gradle 插件(如果使用 Ant,则不需要)
  • Git 插件(如果使用 Git)
  • Android 模拟器插件(如果你想使用模拟器)

这将自动安装一些其他插件。 如果您要使用 Gradle,请执行与 JDK 相同的步骤以自动安装 Gradle。 在撰写本文时,您将需要 Gradle 0.9。 如果您使用 Gradle 包装器,则不需要这样做,即 您的项目中有一个 gradlew 文件,该文件已签入源代码管理。

设置作业


现在,可以设置作业。 单击 New Job,为其命名并选择 Build a free-style software project。 然后单击确定。 在源代码管理部分中,选择您的项目正在使用的版本控制系统并提供信息。 然后在 Build 部分中,如果使用 Gradle,则添加 Invoke Gradle 脚本,如果使用 Ant,则添加 Invoke Ant。 填写所有参数。 对于 Gradle,这将是最可能的参数:

而对于蚂蚁这些:

这将构建项目,但尚未保存 APK 文件。 要对此进行配置,请添加名为 Archive the artifacts 的 Post-build 操作。 对于要归档的文件类型 **/*.apk

点击保存,建筑就可以开始了! 单击立即构建。 JDK将被安装,一段时间后构建将完成! 在项目的页面上,有一个名为 Last Success Artifacts 的标题。 这里将显示所有生成的 APK 文件:

还有什么?


第一个 Android 项目已在您的 Jenkins 实例上构建。 恭喜!

Jenkins 实例可以容纳多个工作,因此创建更多并开发更多 Android 应用程序!

Gradle 也可以自动对应用程序进行签名,但此敏感信息应存储在 build.gradle 文件中,不建议这样做。 这是一个完整的 build.gradle 示例,可以与 Jenkins 结合使用:

buildscript {
    repositories {
        mavenCentral()
    }
    dependencies {
        classpath 'com.android.tools.build:gradle:0.7.+'
    }
}
apply plugin: 'android'

repositories {
    mavenCentral()
    flatDir {
        dirs 'libs'
    }
}

android {
    compileSdkVersion 19
    buildToolsVersion '19.0.1'

    signingConfigs {
        release {
            storeFile file("keystores/release.keystore")
            storePassword "your-keystore-password"
            keyAlias "your-alias"
            keyPassword "your-alias-password"
        }
    }

    buildTypes {
        release {
            zipAlign true
            signingConfig signingConfigs.release
        }
        debug {
            zipAlign true
        }
    }
}

dependencies {
    compile 'com.android.support:appcompat-v7:19.0.0'
    compile 'com.android.support:support-v4:19.0.0'
}

提交者:http: [[“%3Ca|//koenv.com]] [[“%3C/a|”>科恩·弗拉斯温克尔]]