日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

java 调用jira_java调用jira接口

發布時間:2024/7/23 编程问答 33 豆豆
生活随笔 收集整理的這篇文章主要介紹了 java 调用jira_java调用jira接口 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

http://www.cnblogs.com/starcrm/p/4837971.html

首先通過jira的wsdl(http://localhost:8080/rpc/soap/jirasoapservice-v2?wsdl)生成要引入的類

然后寫客戶端:

package jiraTEST;

import java.net.URI;

import java.net.URISyntaxException;

import java.util.ArrayList;

import java.util.HashMap;

import java.util.Iterator;

import java.util.List;

import java.util.Map;

import java.util.concurrent.ExecutionException;

import org.apache.commons.codec.binary.Base32;

import org.joda.time.DateTime;

import com.atlassian.jira.rest.client.IssueRestClient;

import com.atlassian.jira.rest.client.JiraRestClient;

import com.atlassian.jira.rest.client.SearchRestClient;

import com.atlassian.jira.rest.client.domain.BasicIssue;

import com.atlassian.jira.rest.client.domain.BasicProject;

import com.atlassian.jira.rest.client.domain.BasicUser;

import com.atlassian.jira.rest.client.domain.Comment;

import com.atlassian.jira.rest.client.domain.Field;

import com.atlassian.jira.rest.client.domain.Issue;

import com.atlassian.jira.rest.client.domain.Project;

import com.atlassian.jira.rest.client.domain.SearchResult;

import com.atlassian.jira.rest.client.domain.Transition;

import com.atlassian.jira.rest.client.domain.input.ComplexIssueInputFieldValue;

import com.atlassian.jira.rest.client.domain.input.FieldInput;

import com.atlassian.jira.rest.client.domain.input.IssueInput;

import com.atlassian.jira.rest.client.domain.input.IssueInputBuilder;

import com.atlassian.jira.rest.client.internal.async.AsynchronousJiraRestClientFactory;

import com.atlassian.util.concurrent.Promise;

import com.google.common.collect.Lists;

public class CvteJiraDemo {

public static String BaseURL = "http://jira-test:8080/";

public static String User = "admin";

public static String Password = "admin";

private static URI jiraServerUri = URI.create("http://jira-test/rest/api/2/");

private static boolean quiet = false;

private static final long BUG_TYPE_ID = 1L; // JIRA magic value

private static final long TASK_TYPE_ID = 3L; // JIRA magic value

private static final DateTime DUE_DATE = new DateTime();

private static final String PRIORITY = "Trivial";

private static final String DESCRIPTION = "description";

public static void main(String[] args) throws InterruptedException,

ExecutionException {

final AsynchronousJiraRestClientFactory factory = new AsynchronousJiraRestClientFactory();

URI jiraServerUri;

try {

jiraServerUri = new URI(BaseURL);

final JiraRestClient restClient = (JiraRestClient) factory.createWithBasicHttpAuthentication(jiraServerUri, User,Password);

getAllProjects(restClient);

getProject(restClient, "DEMO");

getIssue(restClient, "FEEDBACK-14");

getIssueFields(restClient, "FEEDBACK-27");

addIssue(restClient, "FEEDBACK", "AAAAB");

addIssueComplex(restClient, "FEEDBACK",DUE_DATE.toString());

} catch (URISyntaxException e) {

// TODO Auto-generated catch block

e.printStackTrace();

} finally {

}

}

private static void println(Object o) {

if (!quiet) {

System.out.println(o);

}

}

private static void parseArgs(String[] argsArray) throws URISyntaxException {

final List 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 transitions, String transitionName) {

for (Transition transition : transitions) {

if (transition.getName().equals(transitionName)) {

return transition;

}

}

return null;

}

// 得到所有項目信息

private static void getAllProjects(final JiraRestClient restClient)

throws InterruptedException, ExecutionException {

try {

Promise> list = restClient

.getProjectClient().getAllProjects();

Iterable a = list.get();

Iterator it = a.iterator();

while (it.hasNext()) {

System.out.println(it.next());

}

} finally {

}

}

// 得到單一項目信息

private static void getProject(final JiraRestClient restClient,

String porjectKEY) throws InterruptedException, ExecutionException {

try {

Project project = restClient.getProjectClient()

.getProject(porjectKEY).get();

System.out.println(project);

} finally {

}

}

// 得到單一問題信息

private static void getIssue(final JiraRestClient restClient,

String issueKEY) throws InterruptedException, ExecutionException {

try {

Promise list = restClient.getIssueClient()

.getIssue(issueKEY);

Issue issue = list.get();

System.out.println(issue);

} finally {

}

}

// 創建問題

public static BasicIssue createIssue(final JiraRestClient jiraRestClient,

IssueInput newIssue) {

BasicIssue basicIssue = jiraRestClient.getIssueClient()

.createIssue(newIssue).claim();

return basicIssue;

}

//添加備注到問題

public static void addCommentToIssue(final JiraRestClient jiraRestClient,Issue issue, String comment) {

IssueRestClient issueClient = jiraRestClient.getIssueClient();

issueClient.addComment(issue.getCommentsUri(), Comment.valueOf(comment)).claim();

}

//刪除問題,目前找不到對應API

public static void deleteIssue(final JiraRestClient jiraRestClient, Issue issue) {

IssueRestClient issueClient = jiraRestClient.getIssueClient();

//issueClient.deleteIssue(issue.getKey(), false).claim();

}

//通過標題獲取問題

public static Iterable findIssuesByLabel(final JiraRestClient jiraRestClient, String label) {

SearchRestClient searchClient = jiraRestClient.getSearchClient();

String jql = "labels%3D"+label;

com.atlassian.jira.rest.client.domain.SearchResult results = ((SearchRestClient) jiraRestClient).searchJql(jql).claim();

return results.getIssues();

}

//通過KEY獲取問題

public static Issue findIssueByIssueKey(final JiraRestClient jiraRestClient, String issueKey) {

SearchRestClient searchClient = jiraRestClient.getSearchClient();

String jql = "issuekey = \"" + issueKey + "\"";

SearchResult results = searchClient.searchJql(jql).claim();

return (Issue) results.getIssues().iterator().next();

}

// 創建問題 :僅有簡單問題名稱

private static void addIssue(final JiraRestClient restClient,

String porjectKEY, String issueName) throws InterruptedException,

ExecutionException {

try {

IssueInputBuilder builder = new IssueInputBuilder(porjectKEY,

TASK_TYPE_ID, issueName);

builder.setDescription("issue description");

final IssueInput input = builder.build();

try {

// create issue

final IssueRestClient client = restClient.getIssueClient();

final BasicIssue issue = client.createIssue(input).claim();

final Issue actual = client.getIssue(issue.getKey()).claim();

System.out.println(actual);

} finally {

if (restClient != null) {

// restClient.close();

}

}

} finally {

}

}

// 創建問題 :包含自定義字段

private static void addIssueComplex(final JiraRestClient restClient,

String porjectKEY, String issueName) throws InterruptedException,

ExecutionException {

try {

IssueInputBuilder builder = new IssueInputBuilder(porjectKEY,

TASK_TYPE_ID, issueName);

builder.setDescription("issue description");

// builder.setFieldValue("priority", ComplexIssueInputFieldValue.with("name", PRIORITY));

//單行文本

builder.setFieldValue("customfield_10042", "單行文本測試");

//單選字段

builder.setFieldValue("customfield_10043", ComplexIssueInputFieldValue.with("value", "一般"));

//數值自定義字段

builder.setFieldValue("customfield_10044", 100.08);

//用戶選擇自定義字段

builder.setFieldValue("customfield_10045", ComplexIssueInputFieldValue.with("name", "admin"));

//用戶選擇自定義字段(多選)

Map user1 = new HashMap();

user1.put("name", "admin");

Map user2 = new HashMap();

user2.put("name", "wangxn");

ArrayList peoples = new ArrayList();

peoples.add(user1);

peoples.add(user2);

builder.setFieldValue("customfield_10047", peoples);

//設定父問題

Map parent = new HashMap();

parent.put("key", "FEEDBACK-25");

FieldInput parentField = new FieldInput("parent", new ComplexIssueInputFieldValue(parent));

builder.setFieldInput(parentField);

final IssueInput input = builder.build();

try {

final IssueRestClient client = restClient.getIssueClient();

final BasicIssue issue = client.createIssue(input).claim();

final Issue actual = client.getIssue(issue.getKey()).claim();

System.out.println(actual);

} finally {

if (restClient != null) {

// restClient.close();

}

}

} finally {

}

}

//獲取問題的所有字段

private static void getIssueFields(final JiraRestClient restClient,

String issueKEY) throws InterruptedException, ExecutionException {

try {

Promise list = restClient.getIssueClient()

.getIssue(issueKEY);

Issue issue = list.get();

Iterable fields = issue.getFields();

Iterator it = fields.iterator();

while (it.hasNext()) {

System.out.println(it.next());

}

} finally {

}

}

}

總結

以上是生活随笔為你收集整理的java 调用jira_java调用jira接口的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 久久一区| 三级网站免费看 | 色播基地 | 午夜伦情| 免费av视屏 | 亚洲av无码一区二区三区dv | 二区三区av | 第一毛片 | 国产精品888| 女同性做受全过程动图 | 看av免费毛片手机播放 | 亚洲精品成人片在线观看精品字幕 | youjizz麻豆 | 久久久久999 | 免费三级网 | 青少年xxxxx性开放hg | 性史性农村dvd毛片 日韩精品在线视频观看 | 国产精品999在线观看 | 国产91片| 欧美经典一区二区 | 亚洲va欧美va天堂v国产综合 | 幸福,触手可及 | 少妇人妻偷人精品视频蜜桃 | 日本成人片在线 | 最新最近中文字幕 | 兄弟兄弟全集免费观看 | 国产精品久久在线观看 | 欧美美女在线 | 黄色a在线 | 人妻巨大乳hd免费看 | 亚洲高清影院 | 国产理论在线 | 91精品视频网站 | 午夜爱爱网 | 国产黄a三级 | 色窝av| 国产卡一卡二卡三无线乱码新区 | 亚洲精品一级片 | 真人bbbbbbbbb毛片 | 日本黄色中文字幕 | 久久午夜免费视频 | 少妇搡bbbb搡bbbb | 中日黄色片 | 爱的色放在线 | 少妇25p | 在线观看视频 | 91精品国产综合久久久久久久 | 18成人免费观看网站下载 | 不卡视频免费在线观看 | 精品久久久久成人码免费动漫 | 97人人人 | 精品视频一区二区三区在线观看 | 人日人视频 | 在线少妇| 男女插插视频 | 国产激情自拍 | 亚洲午夜无码久久久久 | 美女张开腿露出尿口 | 美女被草出水 | 久久手机免费视频 | 美女搞黄视频网站 | 午夜精品久久久久久久99老熟妇 | 朝桐光在线播放 | 激情戏网站 | 欧美区一区 | 国产探花精品在线 | 涩涩网站免费 | 龚玥菲三级露全乳视频 | 黄色网一级片 | 日韩五码 | 国产精品11| 亚洲激情久久 | 国产外围在线 | 亚洲视频高清 | 国产精品果冻传媒 | 精品成人无码久久久久久 | 欧美放荡性医生videos | 2023天天操 | h官场少妇第三部分 | 国产精品国产三级国产专播精品人 | 456亚洲影视 | 亚洲综合色在线 | 精品h视频 | 久久亚洲欧洲 | 成人精品一区二区三区 | 美国色视频 | 无罩大乳的熟妇正在播放 | 一级毛片aa | 性的免费视频 | 亚洲国产成人精品91久久久 | 国产一级全黄 | 亚洲精品a | 天天想你在线观看完整版电影免费 | 黑人vs亚洲人在线播放 | 国产不卡毛片 | 影音先锋久久 | 九九啪| 亚洲熟女乱色综合亚洲小说 | 亚洲一区二区免费在线观看 |