最近项目需要操作jira问题,比如获取问题,将问题状态更改为Done等操作,google一下,jira官网提供sdk,废话不多说,随便看看代码。1引入maven依赖com.atlassian.jirajira-rest-java-client-core5.1.6io.atlassian.fuguefugue4.7.22获取jira客户端我们使用AsynchronousJiraRestClientFactory来获取jira客户端。需要注意的是,这种方式获取的client不会主动释放连接,所以不要每次操作jira都获取client,而是作为类变量使用。代码如下:@Service@Slf4jpublicclassJiraProxyImpl{privateJiraRestClientjiraRestClient;私有IssueRestClientissueClient;/***登录JIRA,返回指定的JiraRestClient对象*这里不要每次都新建,会造成ApacheAsyncHttpClient内存泄漏*使用统一客户端可以了*/@PostConstructpublicvoidinitJiraRestClient(){AsynchronousJiraRestClientFactoryasyncClientFactory=new异步JiraRestClientFactory();jiraRestClient=asyncClientFactory.createWithBasicHttpAuthentication(URI.create(JIRA_URL),JIRA_USER,JIRA_PASSWORD);issueClient=jiraRestClient.getIssueClient();}@PreDestroypublicvoidcloseJiraRestClient(){try{if(jiraRestClient!=null){jiraRestClient.close();}}catch(IOExceptione){log.error("closeJiraRestClient异常:");}}}3获取jira问题publicIssuegetIssue(StringissueKey){returnissueClient.getIssue(issueKey).claim();}4Changejiraissuestatus/***Changejiraissuestatus**@paramissuejiraissue,可以得到需要更改的*@paramstatus的状态以上getIssue方法,如Done等*/publicvoidupdateIssueStatus(Issueissue,Stringstatus){Iterabletransitions=client.getTransitions(issue).claim();for(Transitiont:transitions){if(t.getName().equals(status){TransitionInput输入=newTransitionInput(t.getId());client.transition(issue,input).claim();return;}}}结论好了,以上就是JiraJavaSDK改变jiraissue状态的方法我叫梅小希,最近在东南亚电商做DevOps,从这个issue开始,我会继续分享基于Jenkins的CI/CD工作流程,包括JenkinsOnk8s,如果你对Java或者Jenkins等感兴趣,欢迎联系我:wxweven(注意DevOps),公众号:本文由OpenWrite发表,博客群发、发多帖等运营工具平台。