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.jar
但我还有一个问题。他找不到Promise
这部分:
// 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>
The type com.atlassian.util.concurrent.Promise cannot be resolved. It is indirectly referenced from required .class files.
您需要提供 com.atlassian.util.concurrent.Promise
的传递依赖,这在运行时需要。将以下依赖项添加到您的 POM 中将解决报告的问题。
<dependency>
<groupId>com.atlassian.util.concurrent</groupId>
<artifactId>atlassian-util-concurrent</artifactId>
<version>2.6.2</version>
</dependency>
我想通过 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.jar
但我还有一个问题。他找不到Promise
这部分:
// 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>
The type com.atlassian.util.concurrent.Promise cannot be resolved. It is indirectly referenced from required .class files.
您需要提供 com.atlassian.util.concurrent.Promise
的传递依赖,这在运行时需要。将以下依赖项添加到您的 POM 中将解决报告的问题。
<dependency>
<groupId>com.atlassian.util.concurrent</groupId>
<artifactId>atlassian-util-concurrent</artifactId>
<version>2.6.2</version>
</dependency>