簡體   English   中英

Jira Rest Java客戶端

[英]Jira Rest Java Client

我想通過Rest-Api連接到java中的jira實例。 這就是我首先實現與主機的連接的原因。

我讀了很多教程,然后找到了JRJC。 但沒有任何效果。

*更新

    package com.jira.main;

    import java.net.URI;
    import java.net.URISyntaxException;

    import com.atlassian.jira.rest.client.JiraRestClient;
    import com.atlassian.jira.rest.client.JiraRestClientFactory;
    import com.atlassian.jira.rest.client.domain.Issue;
    import com.atlassian.jira.rest.client.domain.User;
    import com.atlassian.jira.rest.client.internal.async.AsynchronousJiraRestClientFactory;
    import com.atlassian.util.concurrent.Promise;



public class App 
{

    private static URI uri = URI.create("http://localhost:8080/jira");

    public static void main( String[] args ) throws URISyntaxException
    {

        // Construct the JRJC client
        System.out.println(String.format("Logging in to %s with username '%s' and password '%s'", "http://localhost:8080/", "bwanke", "Jako2014W!"));
        final AsynchronousJiraRestClientFactory factory =  new AsynchronousJiraRestClientFactory();
        final com.atlassian.jira.rest.client.api.JiraRestClient client = factory.createWithBasicHttpAuthentication(uri, "bwanke", "Jako2014!");


        // Invoke the JRJC Client
        Promise<com.atlassian.jira.rest.client.api.domain.User> promise = client.getUserClient().getUser("bwanke");
        com.atlassian.jira.rest.client.api.domain.User user = promise.claim();


        Promise<com.atlassian.jira.rest.client.api.domain.Issue> promiseIssue = client.getIssueClient().getIssue("TEST-1");
        com.atlassian.jira.rest.client.api.domain.Issue issue = promiseIssue.claim();

        // Print the result
        System.out.println(String.format("Your admin user's email address is: %s\r\n", user.getEmailAddress()));

        // Print the result
        System.out.println("some TEST-1 details " + issue.getAssignee() + "   " + issue.getSummary() + "  " + issue.getWorklogs());
        // Done
        System.out.println("Example complete. Now exiting.");
        System.exit(0);




    }
}

我嘗試導入以下庫:jira-rest-java-client-2.0.0-m2.jar,jira-rest-java-client-3.0.0.jar和jira-rest-java-client-4.0.0。罐

但我還有一個問題。 他找不到承諾

這部分:

// Invoke the JRJC Client
Promise<User> promise = client.getUserClient().getUser("ezizconduct");
User user = promise.claim();


Promise<Issue> promiseIssue = client.getIssueClient().getIssue("TEST-1");
Issue issue = promiseIssue.claim();

例外情況是:

Exception in thread "main" java.lang.Error: Unresolved compilation problems: 
    Promise cannot be resolved to a type
    The type com.atlassian.util.concurrent.Promise cannot be resolved. It is indirectly referenced from required .class files
    The method getUser(String) from the type UserRestClient refers to the missing type Promise
    Promise cannot be resolved to a type
    The method getIssue(String) from the type IssueRestClient refers to the missing type Promise

    at com.jira.main.main(main.java:23)

有沒有人有想法?

----------------更新 - 嘗試使用Maven -------------------

  • 我創建了一個新的maven項目
  • 原型:maven-archetype-quickstart 1.1
  • GroupId和工件ID

然后我在eclipse中有一個新項目。 我將上面的舊代碼復制到新項目中。 然后我復制了依賴項: https//github.com/eziztm/jira_rest_api_test/blob/master/pom.xml

我不導入任何庫,但他沒有重新定義任何類。

我的Poem.xml現在是:

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
  <modelVersion>4.0.0</modelVersion>

  <groupId>com.jira</groupId>
  <artifactId>main</artifactId>
  <version>0.0.1-SNAPSHOT</version>
  <packaging>jar</packaging>

  <name>main</name>
  <url>http://maven.apache.org</url>

    <properties>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    </properties>

    <dependencies>

       <dependency>
            <groupId>com.atlassian.fugue</groupId>
            <artifactId>fugue</artifactId>
            <version>2.6.1</version>
        </dependency>
        <dependency>
            <groupId>org.slf4j</groupId>
            <artifactId>slf4j-simple</artifactId>
            <version>1.6.4</version>
        </dependency>
        <dependency>
            <groupId>com.atlassian.jira</groupId>
            <artifactId>jira-rest-java-client-api</artifactId>
            <version>4.0.0</version>
            <exclusions>
                <exclusion>
                    <groupId>stax</groupId>
                    <artifactId>stax-api</artifactId>
                </exclusion>
            </exclusions>
        </dependency>
        <dependency>
            <!-- JRJC is distributed under the Apache 2.0 license. -->
            <groupId>com.atlassian.jira</groupId>
            <artifactId>jira-rest-java-client-core</artifactId>
            <version>4.0.0</version>
        </dependency>   






    </dependencies>


        <repositories>
        <repository>
            <id>atlassian-public</id>
            <url>https://m2proxy.atlassian.com/repository/public</url>
            <snapshots>
                <enabled>true</enabled>
                <updatePolicy>daily</updatePolicy>
                <checksumPolicy>warn</checksumPolicy>
            </snapshots>
            <releases>
                <enabled>true</enabled>
                <checksumPolicy>warn</checksumPolicy>
            </releases>
        </repository>
    </repositories>


</project>

無法解析com.atlassian.util.concurrent.Promise類型。 它是從所需的.class文件間接引用的。

您需要在運行時提供com.atlassian.util.concurrent.Promise傳遞依賴性。 在POM中添加以下依賴項將解決報告的問題。

<dependency>
 <groupId>com.atlassian.util.concurrent</groupId>
 <artifactId>atlassian-util-concurrent</artifactId>
 <version>2.6.2</version>
</dependency>

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM