2013-07-26 35 views
5

Tôi mới phát triển plugin JIRA, vì vậy câu hỏi của tôi có vẻ quá dễ, nhưng hãy kiên nhẫn và đọc kỹ, vì tôi đã thử rất nhiều thứ, được tìm thấy trên internet và không ai trong số họ làm việc. Đó là lý do tại sao tôi hỏi nó ở đây, như là hy vọng cuối cùng của tôi.Làm thế nào để bao gồm JIRA REST Java Client trong một plugin JIRA?

Tôi muốn sử dụng JIRA REST Java Client trong plugin JIRA của mình. Tiền đạo người thẳng instructions đề nghị để thêm đoạn mã sau vào pom.xml của tôi và tất cả mọi thứ nên làm việc:

<dependency> 
    <groupId>com.atlassian.jira</groupId> 
    <artifactId>jira-rest-java-client</artifactId> 
    <version>1.1-m02</version> 
</dependency> 

nhưng tất nhiên, nó không, bởi vì trong Eclipse, tất cả mọi thứ cho tốt (không có bất kỳ lỗi/cảnh báo) sau atlas-mvn eclipse:eclipse, nhưng khi tôi chạy JIRA với atlas-run hoặc atlas-debug, ngay sau khi tôi cố gắng truy cập vào các dòng:

JerseyJiraRestClientFactory f = new JerseyJiraRestClientFactory(); 

tôi nhận được ngoại lệ java.lang.NoClassDefFoundError: com/atlassian/jira/rest/client/internal/jersey/JerseyJiraRestClientFactory

tôi lặp lại, trong Eclipse, mọi thứ cho thấy ok, không có một dấu hiệu cảnh báo/lỗi duy nhất, nhưng trong thời gian chạy, tôi nhận được ngoại lệ đó.

Giải pháp được đề xuất với tôi là thêm all the needed dependencies vào tệp pom.xml mà tôi đã làm, nhưng sau đó tôi không thể bắt đầu JIRA bình thường, do có quá nhiều ngoại lệ (sẽ cung cấp cho họ nếu cần).

Vì vậy, câu hỏi đơn giản là cách thực hiện điều này đúng cách? Thậm chí tốt hơn, không ai có bất kỳ ví dụ LÀM VIỆC đơn giản nào của tệp pom.xml + src/thư mục để cung cấp, vì vậy tôi có thể tìm ra nơi tôi đang nhầm lẫn?

Cảm ơn bạn rất nhiều trước.

Trả lời

3

Như đã đề cập trong jrjc-example-client repository phiên bản hiện tại của JRJC là 2.0 và một điều quan trọng đã được đề cập trong tập tin pom.xml cung cấp:

"JIRA đã cung cấp một số phụ thuộc mà JRJC cần Chúng ta cần. để loại trừ chúng khỏi phụ thuộc JRJC vì chúng tôi không muốn gói chúng vào bên trong plugin. "

như vậy, giải pháp là để loại trừ những điều từ sự phụ thuộc JRJC:

<dependency> 
     <groupId>com.atlassian.jira</groupId> 
     <artifactId>jira-rest-java-client</artifactId> 
     <version>2.0.0-m2</version> 
     <!-- 
     JIRA will already provide a number of dependencies that JRJC needs. We need to exclude them from the 
     JRJC dependency as we don't want to package them up inside the plugin. 
     --> 
     <exclusions> 
       <exclusion> 
         <groupId>commons-logging</groupId> 
         <artifactId>commons-logging</artifactId> 
       </exclusion> 
       <exclusion> 
         <groupId>joda-time</groupId> 
         <artifactId>joda-time</artifactId> 
       </exclusion> 
       <exclusion> 
         <groupId>com.sun.jersey</groupId> 
         <artifactId>jersey-json</artifactId> 
       </exclusion> 
       <exclusion> 
         <groupId>com.google.guava</groupId> 
         <artifactId>guava</artifactId> 
       </exclusion> 
       <exclusion> 
         <groupId>com.atlassian.sal</groupId> 
         <artifactId>sal-api</artifactId> 
       </exclusion> 
       <exclusion> 
         <groupId>com.atlassian.event</groupId> 
         <artifactId>atlassian-event</artifactId> 
       </exclusion> 
       <exclusion> 
         <groupId>org.slf4j</groupId> 
         <artifactId>slf4j-api</artifactId> 
       </exclusion> 
       <exclusion> 
         <groupId>commons-lang</groupId> 
         <artifactId>commons-lang</artifactId> 
       </exclusion> 
       <exclusion> 
         <groupId>commons-codec</groupId> 
         <artifactId>commons-codec</artifactId> 
       </exclusion> 
       <exclusion> 
         <groupId>org.springframework</groupId> 
         <artifactId>spring-context</artifactId> 
       </exclusion> 
       <exclusion> 
         <groupId>com.sun.jersey</groupId> 
         <artifactId>jersey-core</artifactId> 
       </exclusion> 
     </exclusions> 
</dependency> 
2

Điều này có thể không phải là một câu trả lời trực tiếp câu hỏi của bạn, nhưng có thể cung cấp cho bạn một số dẫn đi đúng hướng.

JIRA cầm một thanh kiếm hai lưỡi, hộp chứa OSGI. Những điều có vẻ ổn khi phát triển trong bom môi trường địa phương của bạn khi bạn triển khai. Bạn có thể có may mắn truy tìm mọi thứ từ quan điểm của OSGI. Đã ở đó, đã bị đốt cháy vài lần. HTH.

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