2012-08-23 83 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

相关问题