Jenkins和android Build

时间:2013-02-12 11:12:12

标签: android ant jenkins

我正在尝试使用Jenkins自动化构建过程

我正在使用以下网站来实现这一目标 Link to site

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

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

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

6 个答案:

答案 0 :(得分:3)

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

  

配置环境

     

当jenkins使用Ant构建项目时,它需要知道你的位置   android sdk文件夹是。为此,请单击Ant目标上的“高级”   您刚刚配置的构建步骤并将以下变量添加到   属性字段。 sdk.dir = /选择/ Android的SDK-LINUX /

     

不要忘记用正确的替换变量的值   在构建服务器上安装Android SDK的位置。

     

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

答案 1 :(得分:2)

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

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

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

示例流程:

  1. SCM - 获取来源
  2. 编辑local.properties(如前所述)
  3. 运行ant build
  4. 注意 - 如果您使用的是“调用Ant”,则应在处理local.properties的编辑之前添加“执行Shell”步骤。

    我希望这会有所帮助。

答案 2 :(得分:1)

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

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

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

答案 3 :(得分:1)

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

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

有关如何使用jenkins设置ant属性的信息,请阅读this

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

答案 4 :(得分:0)

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

答案 5 :(得分:0)

我认为您要将构建步骤"Create Android build files"添加到您的配置中。把它放在蚂蚁构建之前。 这会调用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

add Build Step - Create Android build files