Ubuntu 詹金斯错误:';无法删除文件';调用Ant时
我在Ubuntu11.04上运行Jenkins 1.433,以执行包含Ant任务的构建。我的Ant任务的Ubuntu 詹金斯错误:';无法删除文件';调用Ant时,ubuntu,ant,permissions,jenkins,Ubuntu,Ant,Permissions,Jenkins,我在Ubuntu11.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/buil
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
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运行时)显示:
非常感谢你的建议 谁在管理詹金斯?这就是问题所在。有一个用户正在运行运行Jenkins服务器的Java进程。你需要找到那个用户。试试这个:
$ ps -ef | grep "jenkins"
看看你能得到什么
知道您的名字是Matt,并且我看到无法删除的文件在/home/mattcarp目录中,我发现有一些事情发生了。我的第一个猜测是,Jenkins没有被用户mattcarp
执行
- 詹金斯是如何安装的?它是否作为自己的用户安装在自己的目录中?通常就是这样做的。例如,您在
中安装Jenkins,所有作业都在/home/Jenkins
中,而For job/home/Jenkins/jobs
的工作区在foo
中。为什么Jenkins在看你的/home/Jenkins/jobs/foo/workspace
目录$HOME
- Ant
文件是如何工作的?您是否在build.xml
文件中硬编码目录build.xml
?如果是,则需要重做/home/mattcart/workspace/…
以使用其当前目录树,而不是硬编码build.xml
jenkins
哇,要得到这么简单的答案真是太远了 谢谢你的回复!我编辑了我的问题以反映
ps
命令的输出。Antbuild.xml
使用到构建目录的相对路径,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的身份登录Jenkins服务器,转到工作目录,然后尝试从那里手动运行Ant。这本可以消除詹金斯的过失。现在,知道Jenkins不在图片中,您可以查看您的环境,发现目录问题。解决生成问题的最佳方法是尝试在工作区的目录中运行生成。先禁用作业。windows呢?我在windows中遇到了同样的问题。。我知道我必须提供管理员权限威瑟詹金斯或蚂蚁,但如何…非常有趣你的设置。我们的詹金斯工作区位于/home/Jenkins,而不是/usr/lib/Jenkins。我在目录结构中也看不到作业名称。在我们的目录中,目录应该是/home/jenkins/aromatiest/workspace/build.xml
$ ps -ef | grep "jenkins"