2012-08-23 82 views
5

我在redhat linux機器上運行Jenkins。我的構建是一個包含硒測試的maven 2.2.1項目。我已經在一個可以正常工作的Ubuntu機器上安裝了相同的設置,但是當我嘗試在我的redhat VM上調用相同的頂級Maven命令時,出現以下錯誤。Jenkins在運行maven時獲取權限被拒絕錯誤

org.apache.maven.surefire.booter.SurefireExecutionException: Unable to create file for report: /var/lib/jenkins/jobs/selenium/workspace/target/surefire-reports/com.MyComp.bio.PreferencesTest.txt (Permission denied); nested exception is java.io.FileNotFoundException: /var/lib/jenkins/jobs/selenium/workspace/target/surefire-reports/com.MyComp.bio.PreferencesTest.txt (Permission denied); nested exception is 
org.apache.maven.surefire.report.ReporterException: Unable to create file for report: /var/lib/jenkins/jobs/selenium/workspace/target/surefire-reports/com.MyComp.bio.PreferencesTest.txt (Permission denied); nested exception is java.io.FileNotFoundException: /var/lib/jenkins/jobs/selenium/workspace/target/surefire-reports/com.MyComp.bio.PreferencesTest.txt (Permission denied) 
org.apache.maven.surefire.report.ReporterException: Unable to create file for report: /var/lib/jenkins/jobs/selenium/workspace/target/surefire-reports/com.MyComp.bio.PreferencesTest.txt (Permission denied); nested exception is   
java.io.FileNotFoundException: /var/lib/jenkins/jobs/selenium/workspace/target/surefire-reports/com.MyComp.bio.PreferencesTest.txt (Permission denied) 
java.io.FileNotFoundException: /var/lib/jenkins/jobs/selenium/workspace/target/surefire-reports/com.MyComp.bio.PreferencesTest.txt (Permission denied) 
at java.io.FileOutputStream.open(Native Method) 
at java.io.FileOutputStream.<init>(FileOutputStream.java:212) 
at java.io.FileOutputStream.<init>(FileOutputStream.java:165) 
at java.io.FileWriter.<init>(FileWriter.java:90) 
at org.apache.maven.surefire.report.AbstractFileReporter.testSetStarting(AbstractFileReporter.java:57) 
at org.apache.maven.surefire.report.ReporterManager.testSetStarting(ReporterManager.java:219) 
at org.apache.maven.surefire.suite.AbstractDirectoryTestSuite.executeTestSet(AbstractDirectoryTestSuite.java:138) 
at org.apache.maven.surefire.suite.AbstractDirectoryTestSuite.execute(AbstractDirectoryTestSuite.java:127) 
at org.apache.maven.surefire.Surefire.run(Surefire.java:177) 
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) 
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) 
at java.lang.reflect.Method.invoke(Method.java:601) 
at org.apache.maven.surefire.booter.SurefireBooter.runSuitesInProcess(SurefireBooter.java:345) 
at org.apache.maven.surefire.booter.SurefireBooter.main(SurefireBooter.java:1009) 
[INFO] ------------------------------------------------------------------------ 
[ERROR] BUILD FAILURE 
[INFO] ------------------------------------------------------------------------ 
[INFO] There are test failures. 

在試圖解決這個問題,我已經重啓詹金斯

sudo service jenkins restart 

,但它仍然存在。任何人都遇到過這個?

+4

檢查所有者/的目錄權限詹金斯試圖寫入。 Jenkins正在運行的用戶必須能夠寫入該目錄,否則您將獲得拒絕權限錯誤 – renab

+0

@renab您的建議確實允許jenkins獲得權限錯誤,但ubuntu和redhat之間的權限是當我收到錯誤時也是如此。對於有問題的文件,chmod a + rw也可能是一種解決方法,儘管它似乎仍然缺少一些東西。 – OrwellHindenberg

+0

Jenkins是否在Ubuntu和Red Hat盒子上的同一用戶下運行? 如果是這樣,ls -lrt是否顯示Jenkins用戶擁有它正試圖寫入的目錄? 在這種情況下,所有權與權限一樣重要,因爲權限對於所有者寫入目錄是正確的,但如果用戶書寫不是所有者,則可能會被拒絕權限。 – renab

回答

3

使用ls -al顯示文件的權限。

更多信息請參見this link

閱讀服務啓動腳本檢查詹金斯運行作爲用戶名。

less /etc/init.d/jenkins

您可能已經手動安裝詹金斯到Java EE容器,如tomcat6中。 如果是這樣的話,你應該使用:

less /etc/init.d/tomcat6

相關問題