2013-07-26 14 views
5

Jestem nowy z rozwojem wtyczek JIRA, więc moje pytanie może wydawać się zbyt łatwe, ale proszę o cierpliwość i przeczytaj je uważnie, ponieważ próbowałem tak wielu rzeczy, które znalazłem w Internecie i żadne z nich nie działało. Dlatego proszę o to tutaj, jako moją ostatnią nadzieję.Jak dołączyć klienta Java REST JIRA do wtyczki JIRA?

Chciałbym użyć JIRA REST Java Client w mojej wtyczce JIRA. Prosto naprzód instructions proponuję dodać następujące do mojego pom.xml i wszystko powinno działać:

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

ale oczywiście, że nie, bo w Eclipse, wszystko pokazuje w porządku (bez żadnych błędów/ostrzeżeń) po atlas-mvn eclipse:eclipse, ale gdy uruchamiam JIRA z atlas-runatlas-debug lub tak szybko, jak próbuję otworzyć wiersz:

JerseyJiraRestClientFactory f = new JerseyJiraRestClientFactory(); 

dostaję wyjątkiem java.lang.NoClassDefFoundError: com/atlassian/jira/rest/client/internal/jersey/JerseyJiraRestClientFactory

powtarzam, w Eclipse wszystko pokazuje ok, bez jednego znaku ostrzeżenia/błędu, ale w czasie wykonywania otrzymuję ten wyjątek.

Rozwiązaniem, które mi polecono było dodanie all the needed dependencies do mojego pom.xml, co zrobiłem, ale wtedy nie byłem w stanie normalnie uruchomić JIRA normalnie, z powodu tak wielu wyjątków (w razie potrzeby dostarczy je).

Proste pytanie brzmi: jak to zrobić właściwie? Co jeszcze lepsze, czy ktoś ma jakiś prosty przykład roboczy pliku pom.xml + src/folder do dostarczenia, więc mogę się dowiedzieć, gdzie się myliłem?

Dziękuję bardzo z góry.

Odpowiedz

3

Jak wspomniano w jrjc-example-client repository obecna wersja JRJC wynosi 2,0 i ważną rzeczą jest mowa w przewidzianym pliku pom.xml:

„JIRA już przewiduje szereg zależności, które JRJC potrzebuje Musimy. aby wykluczyć je z zależności JRJC, ponieważ nie chcemy ich pakować wewnątrz wtyczki. "

tak, rozwiązaniem jest, aby wykluczyć te rzeczy z uzależnienia 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

To nie może być bezpośrednią odpowiedź na Twoje pytanie, ale może dać kilka prowadzi w dobrym kierunku.

JIRA dzierży obosieczny miecz, kontener OSGI. Rzeczy, które wyglądają dobrze, gdy rozwijasz się w swojej lokalnej bomby środowiskowej po wdrożeniu. Możesz mieć szczęście śledząc rzeczy z perspektywy OSGI. Byłem tam, spłonęło kilka razy. HTH.