我在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
非常感谢任何建议!
答案 0 :(得分:6)
事实证明,所需要的只是将父目录的所有者设置为jenkins
。
答案 1 :(得分:1)
谁在运行詹金斯?这就是问题所在。有一些用户正在运行运行Jenkins服务器的Java进程。你需要找到那个用户。试试这个:
$ ps -ef | grep "jenkins"
看看你得到了什么。
知道你的名字是 Matt ,我看到无法删除的文件位于 / home / mattcarp 目录中,有些东西告诉我有些东西搞砸了继续我的第一个猜测是Jenkins没有被用户mattcarp
执行。
/home/jenkins
中安装了Jenkins,并且所有作业都在/home/jenkins/jobs
中,而作业foo
的工作区位于/home/jenkins/jobs/foo/workspace
中。为什么Jenkins会查看您的$HOME
目录?build.xml
文件如何工作?您是否正在编码/home/mattcarp/workspace/...
文件中的目录build.xml
?如果是,您需要重做build.xml
以使用其当前目录树而不是硬编码。