我在无头Linux构建服务器上设置了Jenkins服务器和Android SDK。我通过典型的“android create project ...”命令创建了一个Android项目。
在我“cd”进入新项目后,我可以在命令行上成功地“蚂蚁清理调试”作为jenkins用户。我从我的Jenkins工作区目录(.jenkins / workspace /< project name>)运行它:
# su jenkins
$ ant clean debug
.... successful ....
然而,当Jenkins作业构建时,我得到一个Target“debug”在项目“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作业不成功?
谢谢!
答案 0 :(得分:2)
你是否正在从jenkins尝试的同一个地方运行命令行ant build?
仔细检查
.jenkins/workspace/<project-name>
目录,以确保它具有与您手动从命令行运行的项目相同的项目文件。
答案 1 :(得分:0)
经过几天的挫折和惊奇,事实证明删除项目并使用完全相同的设置重新创建它修复了问题。与此同时,我创建并删除了几个更多的工作,有时他们会有上面提到的错误,有时他们没有。即使使用与作业完全相同的设置(字母也是如此),它有时会起作用,而有些则不起作用。对不起,我不知道如何解决这个问题,除了删除作业,重新创建它,然后再试一次!
祝你好运!
答案 2 :(得分:0)
我也有同样的问题。然而,打破我的头一段时间我能解决问题。 因此,如果要在命令行上运行ant目标,则必须使用“ant target name”(例如ant debug)。但是要通过jenkin运行相同的目标,你应该只使用没有ant的目标名称(例如debug)。
不确定为什么会这样。但这解决了我的问题。