Jenkins构建错误FileNotFound /权限被拒绝

时间:2013-10-22 11:42:55

标签: android jenkins build.xml

经过很多关于jenkins和android的教程后,我仍然陷入了无错构建的困境。

我确实遵循了这些教程:
http://www.vogella.com/articles/Jenkins/article.html https://wiki.jenkins-ci.org/display/JENKINS/Building+an+Android+app+and+test+project

我设置的唯一区别是我没有从存储库中检出。 我在作业本身导入了代码,因此在我的“jobs”目录中,我确实有一个包含2个项目的工作区(普通的android和androidUnitTest项目)。

在尝试构建时,我得到了这个日志:

-build-setup:
[getbuildtools] Using latest Build Tools: 18.0.1
     [echo] Resolving Build Target for MainActivity...
[gettarget] Project Target:   Android 4.0
[gettarget] API level:        14
     [echo] ----------
     [echo] Creating output directories if needed...
     [echo] ----------
     [echo] Resolving Dependencies for MainActivity...
[dependency] Library dependencies:
[dependency] No Libraries
[dependency] 
[dependency] ------------------
[dependency] API<=15: Adding annotations.jar to the classpath.
[dependency] WARNING: unable to write jarlist cache file /Users/Shared/Jenkins/Home/jobs/Jenkins4AndroidTest/workspace/XJenkins/bin/jarlist.cache
     [echo] ----------
     [echo] Building Libraries with 'debug'...
   [subant] No sub-builds to iterate on

-code-gen:
[mergemanifest] Found Deleted Target File
[mergemanifest] Merging AndroidManifest files into one.
[mergemanifest] Manifest merger disabled. Using project manifest only.'

导致此错误:

/Users/Shared/android-sdks/tools/ant/build.xml:644: java.io.FileNotFoundException: /Users/Shared/Jenkins/Home/jobs/Jenkins4AndroidTest/workspace/XJenkins/bin/AndroidManifest.xml (Permission denied)
        at java.io.FileOutputStream.open(Native Method)

在我看来它忽略了我在Invoke Ant使用的相对路径(“./XJenkins/build.xml”,target:debug)

有没有人有任何提示,提示或解决方案?那真的很棒!

编辑: 我以前遇到过不同的错误(我在教程中提到了一些更多参数用于ant。)错误是这样的:/Users/Shared/android-sdks/tools/ant/build.xml:392: Problem: failed to create task or type checkenv ...这会是一个更好的方法吗?

1 个答案:

答案 0 :(得分:1)

在我看来,源的所有权问题。

转到:/Users/Shared/Jenkins/Home/jobs/Jenkins4AndroidTest/workspace/XJenkins/bin/ 并执行和:ls -rtl

你应该看到类似的东西:

-rw-r--r-- 1 jenkins jenkins AndroidManifest.xml 

如果没有,请使用 chown 命令向jenkins授予权利。 我将在所有目录

上进行个人操作
sudo chown -R jenkins:jenkins /Users/Shared/Jenkins

此命令将Jenkins目录中的ALL CONTENT所有权归Jenkins用户所有。

小心:这是假设Jenkins是作为User Jenkins的服务推出的。 例如,如果你在tomcat7上将jenkins作为webapp启动,那么Jenkins用户将是tomcat7,你将拥有所有权的tomcat7