2017-07-17 9 views
-3

Ich habe Gradle-Skript, das die Version in JIRA mithilfe der REST-API erstellt. Aber es gibt auch jira-Rest-Java-Client zur Verfügung. Ich möchte die Java-Bibliothek von jira-rest-java-client verwenden und möchte das gleiche in grandle machen. Kann mir jemand ein Beispiel geben, wie kann ich das versuchen?Verwenden Sie Java-Rest-Java-Client-Java-Bibliothek in Java/Gradle/Groovy?

Wie verwendet man die jira-rest-java-client-Bibliothek, um eine Verbindung mit JIRA durch ein Beispiel herzustellen?

In Java Ich versuche, diese JRCJ Bibliothek zu benutzen, aber unten Fehler durch Intellj

import com.atlassian.jira.rest.client.api.JiraRestClient; 
import com.atlassian.jira.rest.client.api.domain.*; 
import com.atlassian.jira.rest.client.api.domain.input.ComplexIssueInputFieldValue; 
import com.atlassian.jira.rest.client.api.domain.input.FieldInput; 
import com.atlassian.jira.rest.client.api.domain.input.TransitionInput; 
import com.atlassian.jira.rest.client.internal.ServerVersionConstants; 
import com.atlassian.jira.rest.client.internal.async.AsynchronousJiraRestClientFactory; 
import com.google.common.collect.Lists; 
import org.codehaus.jettison.json.JSONException; 


import java.io.IOException; 
import java.net.URI; 
import java.net.URISyntaxException; 
import java.util.Arrays; 
import java.util.Collection; 
import java.util.List; 



/** 
* A sample code how to use JRJC library 
* 
* @since v0.1 
*/ 
public class Example1 { 

    private static URI jiraServerUri = URI.create("http://localhost:2990/jira"); 
    private static boolean quiet = false; 

    public static void main(String[] args) throws URISyntaxException, JSONException, IOException { 
     parseArgs(args); 

     final AsynchronousJiraRestClientFactory factory = new AsynchronousJiraRestClientFactory(); 
     final JiraRestClient restClient = factory.createWithBasicHttpAuthentication(jiraServerUri, "admin", "admin"); 
     try { 
      final int buildNumber = restClient.getMetadataClient().getServerInfo().claim().getBuildNumber(); 

      // first let's get and print all visible projects (only jira4.3+) 
      if (buildNumber >= ServerVersionConstants.BN_JIRA_4_3) { 
       final Iterable<BasicProject> allProjects = restClient.getProjectClient().getAllProjects().claim(); 
       for (BasicProject project : allProjects) { 
        if (project == TEST){ 
        println(project);}else { 
         System.out.println("Project" + "Not Found"); 
        } 
       } 
      } 

      // let's now print all issues matching a JQL string (here: all assigned issues) 
      if (buildNumber >= ServerVersionConstants.BN_JIRA_4_3) { 
       final SearchResult searchResult = restClient.getSearchClient().searchJql("assignee is not EMPTY").claim(); 
       for (BasicIssue issue : searchResult.getIssues()) { 
        println(issue.getKey()); 
       } 
      } 

      final Issue issue = restClient.getIssueClient().getIssue("TST-7").claim(); 

      println(issue); 

      // now let's vote for it 
      restClient.getIssueClient().vote(issue.getVotesUri()).claim(); 

      // now let's watch it 
      final BasicWatchers watchers = issue.getWatchers(); 
      if (watchers != null) { 
       restClient.getIssueClient().watch(watchers.getSelf()).claim(); 
      } 

      // now let's start progress on this issue 
      final Iterable<Transition> transitions = restClient.getIssueClient().getTransitions(issue.getTransitionsUri()).claim(); 
      final Transition startProgressTransition = getTransitionByName(transitions, "Start Progress"); 
      restClient.getIssueClient().transition(issue.getTransitionsUri(), new TransitionInput(startProgressTransition.getId())) 
        .claim(); 

      // and now let's resolve it as Incomplete 
      final Transition resolveIssueTransition = getTransitionByName(transitions, "Resolve Issue"); 
      final Collection<FieldInput> fieldInputs; 

      // Starting from JIRA 5, fields are handled in different way - 
      if (buildNumber > ServerVersionConstants.BN_JIRA_5) { 
       fieldInputs = Arrays.asList(new FieldInput("resolution", ComplexIssueInputFieldValue.with("name", "Incomplete"))); 
      } else { 
       fieldInputs = Arrays.asList(new FieldInput("resolution", "Incomplete")); 
      } 
      final TransitionInput transitionInput = new TransitionInput(resolveIssueTransition.getId(), fieldInputs, Comment 
        .valueOf("My comment")); 
      restClient.getIssueClient().transition(issue.getTransitionsUri(), transitionInput).claim(); 
     } 
     finally { 
      restClient.close(); 
     } 
    } 

    private static void println(Object o) { 
     if (!quiet) { 
      System.out.println(o); 
     } 
    } 

    private static void parseArgs(String[] argsArray) throws URISyntaxException { 
     final List<String> args = Lists.newArrayList(argsArray); 
     if (args.contains("-q")) { 
      quiet = true; 
      args.remove(args.indexOf("-q")); 
     } 

     if (!args.isEmpty()) { 
      jiraServerUri = new URI(args.get(0)); 
     } 
    } 

    private static Transition getTransitionByName(Iterable<Transition> transitions, String transitionName) { 
     for (Transition transition : transitions) { 
      if (transition.getName().equals(transitionName)) { 
       return transition; 
      } 
     } 
     return null; 
    } 

} 

Fehler beim Abrufen:

xception in thread "main" java.lang.NoClassDefFoundError: com/atlassian/sal/api/executor/ThreadLocalContextManager 
    at com.atlassian.jira.rest.client.internal.async.AsynchronousJiraRestClientFactory.create(AsynchronousJiraRestClientFactory.java:35) 
    at com.atlassian.jira.rest.client.internal.async.AsynchronousJiraRestClientFactory.createWithBasicHttpAuthentication(AsynchronousJiraRestClientFactory.java:42) 
    at Example1.main(Example1.java:34) 
Caused by: java.lang.ClassNotFoundException: com.atlassian.sal.api.executor.ThreadLocalContextManager 
    at java.net.URLClassLoader.findClass(URLClassLoader.java:381) 
    at java.lang.ClassLoader.loadClass(ClassLoader.java:424) 
    at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:331) 
    at java.lang.ClassLoader.loadClass(ClassLoader.java:357) 
    ... 3 more 

Außerdem habe ich die JRJC api, Kernglas in externen Bibliotheken, aber immer noch diesen Fehler bekommen?

Kann mir jemand sagen, was ist das Problem oder wo fehlt mir etwas?

Antwort

0
compile 'com.atlassian.jira:jira-rest-java-client-core:4.0.0' 
compile 'com.atlassian.jira:jira-rest-java-client-api:4.0.0' 

Einfache Anbindung an JIRA:

 JiraRestClient restClient = new AsynchronousJiraRestClientFactory().createWithBasicHttpAuthentication(new URI("https://" + jira_domain), 
       jira_username, jira_password);