Jenkins错误:在调用Ant时无法删除文件
我在Ubuntu 11.04上运行Jenkins 1.433以执行包含Ant任务的构建。从终端运行sudo Ant
时clean
部分我的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
任何非常感谢咨询!
事实证明,所有需要的是在父目录的所有者设置为jenkins
。
哇 - 这是一个很长的路要走这么简单的答案!
我很高兴你已经解决了这个问题。接下来我要告诉你的是,在Jenkins服务器上以Jenkins身份登录,转到工作目录,然后尝试从那里手动运行Ant。这将消除詹金斯的错误。现在,知道詹金斯不在图片中,你会看看你的环境,并发现目录问题。解决构建问题的最佳方法是尝试在构建工作区的目录中运行构建。首先停用这项工作。 –
窗户怎么样?我在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
来使用它的当前目录树,而不是硬编码它。
感谢您的回应!我编辑了我的问题以反映'ps'命令的输出。 Ant的'build.xml'使用一个相对于build目录的路径,并且Jenkins是按照Jenkins站点上的说明使用'aptitude'安装的。它位于'/ var/lib/jenkins'。我觉得我正在做一些愚蠢的权限,但我不太确定... –
另外,为了避免任何变化,我手动将项目文件移动到'/ var/lib/jenkins/workspace'中反映在我编辑的问题中)。顺便提一句,'ps -f |的输出grep“ant”是: 'mattcarp 2775 2231 0 15:41 pts/0 00:00:00 grep --color = auto ant' –
非常有趣您的设置。我们的Jenkins工作区位于/ home/jenkins而不是/ usr/lib/jenkins。我也没有看到目录结构中的作业名称。在我们的目录中,该目录将是'/ home/jenkins/aromaTest/workspace/build.xml' –