Jenkins和android Build

我试图使用Jenkins自动化android构建过程

我使用以下网站来实现此链接到网站

我成功地能够在自己的机器上构建它。 最初我得到错误,说找不到build.xml文件(使用ant构建需要此文件)。 所以我执行“android更新项目”。 所以它会自动为ant生成所有必需的文件。

现在我的问题开始了,当我试图将我的仓库托管到远程服务器并尝试从另一台机器构建。 它给出的错误是sdk.dir不正确。 当我分析项目文件夹时,是一个名为local.properties的文件,其中包含我的第一台机器的SDK路径,这对其他机器是错误的。 所以我将该文件添加到gitignore。 现在该文件没有跟踪,因此构建失败。

那么在jenkins从远程仓库克隆项目之后,有没有办法自动生成ant所需的文件?

从您链接的网站,他们准确地解释了如何配置sdk.dir:

配置环境

当jenkins用Ant构建你的项目时,它需要知道你的android sdk文件夹在哪里。 为此,请在刚刚配置的Ant目标构建步骤中单击“高级”,然后将以下variables添加到“属性”字段中。 sdk.dir = /选择/ Android的SDK-LINUX /

不要忘记将variables的值替换为构建服务器上安装Android SDK的正确位置。

作业配置完成。 单击保存。 是时候测试你的构建了。

我们还使用Jenkins构建Android应用程序,还需要编辑local.properties。

在我的例子中,我通过Jenkins构建本身更新了SDK的路径。 就在构建开始之前。

您可以在linux上使用简单的sed命令或回显Windows上的内容(覆盖内容)。

示例流程:

  1. SCM – 获取资源
  2. 编辑local.properties(如前所述)
  3. 运行ant build

注意 – 如果您使用的是“调用Ant”,则应在添加“执行Shell”步骤之前处理local.properties的编辑。

我希望这有帮助。

是。

如果您为Jenkins安装Android Emulator插件 ,则可以在工作中添加“创建Android构建文件”构建步骤。

这将自动检测Jenkins工作区中的任何Android应用程序,测试或库项目,并根据需要添加/更新build.xml和local.properties文件。

或者,如果您正在使用Ant构建步骤并且已在存储库中安装了build.xml,则可以通过在Advanced Ant选项中自己指定sdk.dir属性来忽略创建local.properties文件的需要。

您可以在jenkins中配置ant属性。 因此,您可以通过jenkins作业配置指定local.properties所有属性。

当然你必须在jenkins构建服务器上安装android sdk。

有关如何使用jenkins设置ant属性的信息,请阅读此内容。

将local.properties置于源代码管理之下并不是一个好习惯,因为多个开发人员和CI对这些属性具有不同的值。

您可以将jenkins工作区文件夹中的local.properties文件编辑为正确的sdk路径

我想你想在你的配置中添加构建步骤"Create Android build files" 。 把它放在ant构建之前。 这将调用android update projectandroid update lib-project 。 确保使用相对路径在project.properties中引用了库依赖项。 喜欢这个:

 # Project target. target=Google Inc.:Google APIs:19 android.library.reference.1=../external-libs/google-play-services_lib android.library.reference.2=../external-libs/android-support-v7-appcompat 

添加构建步骤 - 创建Android构建文件