我在 Ubuntu 11.04 上运行 Jenkins 1.433 以执行包含 Ant 任务的构建。我的 Ant 任务的 clean
部分从之前的构建中删除了 build
目录,在从终端运行 sudo Ant
时将起作用,但失败了来自 Jenkins,具有以下内容:
BUILD FAILED
/var/lib/jenkins/workspace/AomaTests/build.xml:47: Unable to delete directory /var/lib/jenkins/workspace/AomaTests/build
Jenkins 引用的 Ant 安装是从命令行 (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
(从Jenkins运行时)显示:
drwxr-xr-x 2 jenkins root 4096 2011-10-03 14:49 build
非常感谢任何建议!
最佳答案
事实证明,所需要的只是将parent 目录的所有者设置为jenkins
。
哇 - 这么简单的答案要走很长的路!
关于ubuntu - Jenkins 错误 : 'Unable to Delete File' When Invoking Ant,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7625677/