Jenkins est l'obtention de l'autorisation refusée erreurs lors de l'exécution de maven
Je suis à court de Jenkins sur une redhat linux. Mon build est un maven 2.2.1 projet qui contient du sélénium tests. J'ai la même configuration sur un ubuntu boîte qui fonctionne bien, mais lorsque je tente d'invoquer le même haut niveau de la commande maven sur ma redhat VM j'obtiens l'erreur suivante.
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.
À tenter de résoudre ce problème j'ai redémarrer Jenkins
sudo service jenkins restart
mais il persiste. Quelqu'un courir dans cette avant?
Vérifiez le propriétaire / les autorisations sur le répertoire que Jenkins tente d'écrire. L'utilisateur Jenkins est exécuté doit être en mesure d'écrire dans ce répertoire ou vous obtiendrez une erreur permission denied
votre suggestion ne permettent jenkins pour obtenir passé les erreurs de permission, mais les autorisations entre ubuntu et redhat boîtes avaient été de la même quand j'ai été l'erreur. Encore un chmod a+rw pour les fichiers en question peut être un travail autour de, mais il me semble que je suis toujours en manque de quelque chose.
Est Jenkins exécute sous le même utilisateur sur les Deux Ubuntu et Red Hat box? Si oui, fait un ls -lrt montrent que le Jenkins utilisateur possède les répertoires qu'il tente d'écrire? La propriété est tout aussi important que les autorisations dans ce cas, les autorisations peuvent être correct pour le propriétaire d'écrire dans un répertoire, mais si l'utilisateur écrit n'est pas le propriétaire, il peut être refusée.
votre suggestion ne permettent jenkins pour obtenir passé les erreurs de permission, mais les autorisations entre ubuntu et redhat boîtes avaient été de la même quand j'ai été l'erreur. Encore un chmod a+rw pour les fichiers en question peut être un travail autour de, mais il me semble que je suis toujours en manque de quelque chose.
Est Jenkins exécute sous le même utilisateur sur les Deux Ubuntu et Red Hat box? Si oui, fait un ls -lrt montrent que le Jenkins utilisateur possède les répertoires qu'il tente d'écrire? La propriété est tout aussi important que les autorisations dans ce cas, les autorisations peuvent être correct pour le propriétaire d'écrire dans un répertoire, mais si l'utilisateur écrit n'est pas le propriétaire, il peut être refusée.
OriginalL'auteur OrwellHindenberg | 2012-08-23
Vous devez vous connecter pour publier un commentaire.
Utilisation
ls -al
pour afficher les autorisations de fichiers.Voir ce lien pour plus d'informations.
Lire le service de script de démarrage pour vérifier le nom de l'utilisateur que Jenkins.
less /etc/init.d/jenkins
Vous pouvez avoir installé manuellement jenkins pour un conteneur Java EE comme tomcat6.
Si c'est le cas, vous devez utiliser:
less /etc/init.d/tomcat6
OriginalL'auteur Tinman