如何使用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' }