我正在尝试使用Jenkins自动化构建过程
我正在使用以下网站来实现这一目标 Link to site
我已成功在自己的机器上构建它。最初我得到错误,说找不到build.xml文件(使用ant构建需要此文件)。所以我执行“android更新项目”。因此它会自动为ant生成所有必需的文件。
现在我的问题开始了,当我试图将我的仓库托管到远程服务器并尝试从另一台机器构建时。它给出的错误是sdk.dir不正确。当我分析项目文件夹时,是一个名为local.properties的文件,其中包含我的第一台机器的SDK路径,这对其他机器是错误的。所以我将该文件添加到gitignore。现在该文件没有跟踪,因此构建失败。
在jenkins从远程仓库克隆项目后,有没有办法自动生成ant所需的文件?
答案 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命令或在窗口上回显内容(覆盖内容)。
示例流程:
注意 - 如果您使用的是“调用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 project
和android 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