Jenkins错误:在调用Ant时无法删除文件

问题描述:

我在Ubuntu 11.04上运行Jenkins 1.433以执行包含Ant任务的构建。从终端运行sudo Antclean部分我的Ant任务,它会删除build目录从之前版本,将工作,但无法从詹金斯有以下几点:Jenkins错误:在调用Ant时无法删除文件

BUILD FAILED 
/var/lib/jenkins/workspace/AomaTests/build.xml:47: Unable to delete directory /var/lib/jenkins/workspace/AomaTests/build 

蚂蚁安装詹金斯引用的是一个它从命令行(usr/bin/ant)开始工作,而Jenkins项目专门指向此实例(而不是Default)。搞清楚了这是一个权限问题,我试过如下:

  • chown -R适当build目录,它的主人设置为jenkins
  • 在目录上做一个chmod 777
  • 暂时允许jenkins用户名能够运行没有密码的内容(通过编辑sudoers文件和jenkins ALL = NOPASSWD:ALL行)。

这些方法都没有工作。我应该通过不同的用户运行ant,还是通过Jenkins传递一些属性?

更新:的ps -ef | grep "jenkins"输出是:

jenkins 1647  1 0 12:28 ?  00:00:00 /usr/bin/daemon --name=jenkins --inherit --env=JENKINS_HOME=/var/lib/jenkins --output=/var/log/jenkins/jenkins.log --pidfile=/var/run/jenkins/jenkins.pid -- /usr/bin/java -jar /usr/share/jenkins/jenkins.war --webroot=/var/run/jenkins/war --httpPort=8080 --ajp13Port=-1 
jenkins 1660 1647 7 12:28 ?  00:00:13 /usr/bin/java -jar /usr/share/jenkins/jenkins.war --webroot=/var/run/jenkins/war --httpPort=8080 --ajp13Port=-1 
mattcarp 2393 2229 0 12:31 pts/0 00:00:00 grep --color=auto jenkins 

运行(从詹金斯运行时)是不能被删除的目录ls -l显示:

drwxr-xr-x 2 jenkins root 4096 2011-10-03 14:49 build 

任何非常感谢咨询!

+0

非常有趣您的设置。我们的Jenkins工作区位于/ home/jenkins而不是/ usr/lib/jenkins。我也没有看到目录结构中的作业名称。在我们的目录中,该目录将是'/ home/jenkins/aromaTest/workspace/build.xml' –

事实证明,所有需要的是在目录的所有者设置为jenkins

哇 - 这是一个很长的路要走这么简单的答案!

+0

我很高兴你已经解决了这个问题。接下来我要告诉你的是,在Jenkins服务器上以Jenkins身份登录,转到工作目录,然后尝试从那里手动运行Ant。这将消除詹金斯的错误。现在,知道詹金斯不在图片中,你会看看你的环境,并发现目录问题。解决构建问题的最佳方法是尝试在构建工作区的目录中运行构建。首先停用这项工作。 –

+0

窗户怎么样?我在Windows中遇到同样的问题..我知道我必须提供管理权限才能让詹金斯或蚂蚁枯萎,但是如何...... –

谁在运行詹金斯?这就是问题所在。有一些用户正在运行运行Jenkins服务器的Java进程。你需要找到那个用户。试试这个:

$ ps -ef | grep "jenkins" 

看看你得到了什么。

知道了你的名字是马特和我看到的是不能被删除的文件在/家庭/ mattcarp目录,东西告诉我有去的东西扭曲。我的第一个猜测是詹金斯没有被用户mattcarp执行。

  • 詹金斯是如何安装的?它是否作为自己的用户安装在自己的目录中?这通常是如何完成的。例如,您将Jenkins安装在/home/jenkins中,并且所有作业都在/home/jenkins/jobs中,而作业foo的工作空间位于/home/jenkins/jobs/foo/workspace中。詹金斯为什么看着你的$HOME目录?
  • 您的Ant build.xml文件如何工作?您是否在build.xml文件中硬编码目录/home/mattcarp/workspace/...?如果你是,你需要重做你的build.xml来使用它的当前目录树,而不是硬编码它。
+0

感谢您的回应!我编辑了我的问题以反映'ps'命令的输出。 Ant的'build.xml'使用一个相对于build目录的路径,并且Jenkins是按照Jenkins站点上的说明使用'aptitude'安装的。它位于'/ var/lib/jenkins'。我觉得我正在做一些愚蠢的权限,但我不太确定... –

+0

另外,为了避免任何变化,我手动将项目文件移动到'/ var/lib/jenkins/workspace'中反映在我编辑的问题中)。顺便提一句,'ps -f |的输出grep“ant”是: 'mattcarp 2775 2231 0 15:41 pts/0 00:00:00 grep --color = auto ant' –