2011-10-02 31 views
5

我在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' –

回答

6

事實證明,所有需要的是在目錄的所有者設置爲jenkins

哇 - 這是一個很長的路要走這麼簡單的答案!

+0

我很高興你已經解決了這個問題。接下來我要告訴你的是,在Jenkins服務器上以Jenkins身份登錄,轉到工作目錄,然後嘗試從那裏手動運行Ant。這將消除詹金斯的錯誤。現在,知道詹金斯不在圖片中,你會看看你的環境,並發現目錄問題。解決構建問題的最佳方法是嘗試在構建工作區的目錄中運行構建。首先停用這項工作。 –

+0

窗戶怎麼樣?我在Windows中遇到同樣的問題..我知道我必須提供管理權限才能讓詹金斯或螞蟻枯萎,但是如何...... –

0

誰在運行詹金斯?這就是問題所在。有一些用戶正在運行運行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' –