3

我在无头 Linux 构建服务器上设置了 Jenkins 服务器和 Android SDK。我通过典型的“android create project ...”命令创建了一个 Android 项目。

在我“cd”进入新项目后,我可以在命令行上以 jenkins 用户的身份成功“ant clean debug”。我从我的 Jenkins 工作区目录 (.jenkins/workspace/<project name>) 运行它:

# su jenkins
$ ant clean debug
.... successful ....

但是,当构建 Jenkins 作业时,我得到一个 Target “debug” does not exist in the project “ProjectName” 错误

我将 sdk.dir 变量设置为我的 Android SDK 目录,因此 Jenkins 日志中的命令运行如下:

$ ant -Dsdk.dir=/opt/java/android clean debug

我已将整个 android SDK 文件夹的权限设置为 777:

# chmod -R 777 /usr/java/android/android-sdk

我对我可能还缺少什么感到茫然?为什么命令会在命令行上运行,但作为 Jenkins 作业却不成功?

谢谢!

4

3 回答 3

2

您是否从 jenkins 尝试的同一位置运行命令行 ant build?

仔细检查您的

.jenkins/workspace/<project-name>

目录以确保它具有与您从命令行手动运行的项目文件相同的项目文件。

于 2013-02-06T04:43:03.877 回答
0

经过几天的挫折和疑惑,事实证明删除项目并使用完全相同的设置重新创建它可以解决问题。同时,我又创建和删除了几个工作,有时他们有上面提到的错误,有时他们没有。即使 Job 的设置完全相同(一个字母一个字母),它有时也可以工作,而其他一些则不能。抱歉,我不知道如何解决此问题,只能删除作业,重新创建,然后重试!

祝你好运!

于 2013-02-07T19:26:28.287 回答
0

我也有同样的问题。然而,我打破了一段时间,我能够解决这个问题。所以如果你想在命令行上运行ant target,你必须使用“ant target name”(例如ant debug)。但是要通过 jenkin 运行相同的目标,您应该只使用没有 ant 的目标名称(例如调试)。

不知道为什么会这样。但这为我解决了这个问题。

于 2018-02-22T08:49:40.820 回答