【问题标题】:SonarQube Java issuesSonarQube Java 问题
【发布时间】:2017-03-01 08:02:41
【问题描述】:

我正在尝试使用 Java API 检索 SonarQube 结果。 虽然我能够成功地检索到一些结果,但我也面临着一些挑战。 我有以下两个问题

问题 1: 我的代码如下

IssueQuery issueQuery = IssueQuery.create();
issueQuery.severities("MAJOR", "MINOR");
IssueClient issueClient = sonarClient.issueClient();
Issues issues = issueClient.find(issueQuery);
List<Issue> issueList = issues.list();
上面代码中的

issues.list() 总是只给出 100 个结果。不知道如何配置此参数以获取所有结果。您能告诉我如何检索所有问题吗?

问题 2 :上面的代码返回所有项目的结果。 有什么办法可以检索单个项目的问题吗? 我尝试了以下代码,但它似乎不起作用。

IssueQuery issueQuery = IssueQuery.create();
issueQuery.issues(projKey1, projKey2);
IssueClient issueClient = sonarClient.issueClient();
Issues issues = issueClient.find(issueQuery);
List<Issue> issueList = issues.list();
System.out.println("No of issues = "+issueList.size());

issueList.size() 返回值 0 你能告诉我我怎样才能做到这一点吗?

我在互联网上搜索了很多但找不到任何帮助? 你能在这方面帮助我吗? 提前致谢。

【问题讨论】:

标签: java sonarqube sonarqube5.1 sonarqube-web


【解决方案1】:

问题 1 结果是分页的。有关结果总数的信息,请参阅Issues#paging(),有关请求其他页面的信息,请参阅IssueQuery#pageIndex(int)

问题 2 IssueQuery#componentRoots(String... projectKeys) 方法允许过滤项目。

【讨论】:

  • 嗨,西蒙,非常感谢您的回复。在 issueQuery 对象上,我无法获取 componentRoots() 方法。我正在使用 sonar-ws-client.jar。但我可以得到 issueQuery.components() 方法。所以我尝试了它,但它不起作用。以下是我的代码 IssueQuery issueQuery = IssueQuery.create(); issueQuery = issueQuery.components(projKey1, projKey2);问题客户端 issueClient = sonarClient.issueClient();问题问题 = issueClient.find(issueQuery);列表 问题列表 = 问题.list(); System.out.println("No of issues = "+issueList.size());
  • 哪个版本的库?
  • 我正在使用 sonar-ws-client-5.1.jar
  • 嘿西蒙,你认为我在这里遗漏了什么吗?
  • 您应该检查网络服务api/issues/search?componentKeys=projKey1 的结果。请参阅 /api_documentation#api/issues 中的文档。
猜你喜欢
  • 2018-03-16
  • 2017-11-25
  • 2016-09-05
  • 2020-11-21
  • 1970-01-01
  • 1970-01-01
  • 2018-07-04
  • 2019-05-21
  • 2017-06-24
相关资源
最近更新 更多