2012-08-23 38 views
5

Tôi đang chạy Jenkins trên một hộp linux redhat. Xây dựng của tôi là một dự án mút 2.2.1 chứa các bài kiểm tra selen. Tôi đã có cùng một thiết lập trên một hộp ubuntu mà hoạt động tốt, nhưng khi tôi cố gắng gọi cùng một lệnh maven cấp cao nhất trên máy ảo redhat của tôi, tôi nhận được lỗi sau.Jenkins đang nhận được sự cho phép bị từ chối lỗi khi chạy 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. 

Trong nỗ lực nhằm giải quyết vấn đề này, tôi đã khởi động lại Jenkins

sudo service jenkins restart 

nhưng nó vẫn tồn tại. Bất cứ ai chạy vào điều này trước?

+4

Kiểm tra chủ sở hữu/quyền truy cập vào các thư mục đó Jenkins đang nỗ lực để ghi vào. Người dùng mà Jenkins đang chạy phải có khả năng ghi vào thư mục đó hoặc bạn sẽ nhận được giấy phép bị từ chối lỗi – renab

+0

@renab đề xuất của bạn đã cho phép jenkins vượt qua các lỗi cho phép, nhưng quyền giữa các hộp ubuntu và redhat là giống như khi tôi gặp lỗi. Một lần nữa một chmod một + rw cho các tập tin trong câu hỏi có thể là một công việc xung quanh, mặc dù nó có vẻ như tôi vẫn còn thiếu một cái gì đó. – OrwellHindenberg

+0

Jenkins có đang chạy dưới cùng một người dùng trên cả hai hộp Ubuntu và Red Hat không? Nếu có, thì ls -lrt có cho thấy người dùng Jenkins sở hữu các thư mục mà nó đang cố ghi vào không? Quyền sở hữu cũng quan trọng như quyền trong trường hợp này vì quyền có thể chính xác để chủ sở hữu viết thư mục nhưng nếu người dùng viết không phải là chủ sở hữu, điều đó có thể bị từ chối cho phép. – renab

Trả lời

3

Sử dụng ls -al để hiển thị quyền của tệp.

Xem this link để biết thêm thông tin.

Đọc tập lệnh khởi động dịch vụ để kiểm tra tên của người dùng mà Jenkins đang chạy.

less /etc/init.d/jenkins

Bạn có thể cài đặt bằng tay Jenkins cho một container Java EE như tomcat6. Nếu đây là trường hợp, bạn nên sử dụng:

less /etc/init.d/tomcat6

Các vấn đề liên quan