【问题标题】:Sample client for accessing sonar Qube issues of a project用于访问项目声纳 Qube 问题的示例客户端
【发布时间】:2021-06-10 15:28:30
【问题描述】:

我需要示例 java 客户端代码来访问 sonar Qube 中的项目问题?

我会将项目密钥作为输入传递,并在输出中获取问题列表。

【问题讨论】:

    标签: sonarqube


    【解决方案1】:

    您可以使用 sonarqube 客户端库:

        Builder builder = HttpConnector.newBuilder();
    
        builder.url("http://xxxx:9000/sonar/");
    
        builder.connectTimeoutMilliseconds(10000);
    
        HttpConnector httpConnector = builder.build();
    
        SearchWsRequest searchWsRequest = new org.sonarqube.ws.client.issue.SearchWsRequest();
    
        List<String> projectKeys = new ArrayList<String>(1);
    
        projectKeys.add("project_key");
    
        searchWsRequest.setProjectKeys(projectKeys);
    
        final WsClient wsClient = WsClientFactories.getDefault().newClient(httpConnector);
    
        List<Issue> issues = wsClient.issues().search(searchWsRequest).getIssuesList();
    

    并使用

    <dependency>
      <groupId>org.sonarsource.sonarqube</groupId>
      <artifactId>sonar-ws</artifactId>
      <version>5.6</version>
    </dependency>
    

    【讨论】:

    • 亲爱的 Maxence,感谢您抽出宝贵时间在这里回答。我的旅程是尝试使用 REST API,然后尝试使用 jsonschema2pojo,然后了解子项目 sonar-ws-generator 和 sonar-ws,然后尝试找出如何最好地使用......然后终于到了这里。多么浪费时间......但多么美好的结局!干杯伙伴!
    【解决方案2】:

    更新了 Sonarqube 8.2.blarghminorversion 的源代码。使用 Maxence Lecointe 提供的精美示例只需进行微小的更改...

    import java.util.ArrayList;
    import java.util.List;
    
    import org.sonarqube.ws.Issues.Issue;
    import org.sonarqube.ws.Issues.SearchWsResponse;
    import org.sonarqube.ws.client.HttpConnector;
    import org.sonarqube.ws.client.HttpConnector.Builder;
    import org.sonarqube.ws.client.WsClient;
    import org.sonarqube.ws.client.WsClientFactories;
    import org.sonarqube.ws.client.issues.SearchRequest;
    
    public class SimpleClient {
    
        public static void main(String[] args) {
                Builder builder = HttpConnector.newBuilder();
    
                builder.url("http://xxxx:9000/");
    
                builder.connectTimeoutMilliseconds(10000);
    
                HttpConnector httpConnector = builder.build();
    
                SearchRequest searchWsRequest = new org.sonarqube.ws.client.issues.SearchRequest();
    
                List<String> componentKeys = new ArrayList<String>(1);
    
                componentKeys.add("project_key");
    
                searchWsRequest.setComponentKeys(componentKeys);
    
                final WsClient wsClient = WsClientFactories.getDefault().newClient(httpConnector);
    
                SearchWsResponse response = wsClient.issues().search(searchWsRequest);
    
                System.out.println("Total found: " + response.getTotal());
    
                List<Issue> issues = wsClient.issues().search(searchWsRequest).getIssuesList();
    
                for (Issue issue : issues) {
                    System.out.println("===================================");
                    System.out.println(issue.toString());
                }
        }
    
    }
    
    <dependency>
        <groupId>org.sonarsource.sonarqube</groupId>
        <artifactId>sonar-ws</artifactId>
        <version>8.2.0.32929</version>
    </dependency>
    

    【讨论】:

      猜你喜欢
      • 2015-12-19
      • 2019-12-20
      • 2023-03-28
      • 1970-01-01
      • 2011-03-02
      • 2016-07-18
      • 1970-01-01
      • 1970-01-01
      • 2021-09-01
      相关资源
      最近更新 更多