2012-08-23 40 views
5

Estoy ejecutando Jenkins en un redhat linux box. Mi compilación es un proyecto maven 2.2.1 que contiene pruebas de selenio. Tengo la misma configuración en un cuadro ubuntu que funciona bien, pero cuando intento invocar el mismo comando maven de nivel superior en mi VM redhat recibo el siguiente error.Jenkins obtiene errores de permiso denegado al ejecutar 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. 

En un intento de resolver este problema que he reinicio Jenkins

sudo service jenkins restart 

pero persiste. ¿Alguien se encuentra con esto antes?

+4

Comprobar el propietario/permisos en el directorio que Jenkins está intentando escribir en. El usuario con el que se está ejecutando Jenkins debe poder escribir en ese directorio o obtendrá un error de permiso denegado – renab

+0

@renab. Su sugerencia permitió a jenkins superar los errores de permiso, pero los permisos entre los cuadros ubuntu y redhat habían sido los mismos. mismo cuando recibí el error. Una vez más, un chmod a + rw para los archivos en cuestión podría ser una solución alternativa, aunque parece que aún me falta algo. – OrwellHindenberg

+0

¿Está Jenkins corriendo bajo el mismo usuario en las cajas Ubuntu y Red Hat? Si es así, ¿muestra ls -lrt que el usuario de Jenkins posee los directorios en los que está intentando escribir? La propiedad es tan importante como los permisos en este caso, ya que los permisos pueden ser correctos para que el propietario escriba en un directorio, pero si el usuario que escribe no es el propietario, se le puede denegar el permiso. – renab

Respuesta

3

Use ls -al para visualizar los permisos de los archivos.

Consulte this link para obtener más información.

Lea el script de inicio del servicio para verificar el nombre del usuario que está ejecutando Jenkins.

less /etc/init.d/jenkins

Puede que haya instalado manualmente Jenkins a un contenedor Java EE como tomcat6. Si este es el caso, se debe utilizar:

less /etc/init.d/tomcat6