使用sonar-ws-client获取违规数、代码行数


sonar是开源的质量管理工具。 违规数、代码行数是sonar质量度量(Measure)的两个指标(Metric)。 sonar-ws-client是sonar webservice的java实现。 使用sonar-ws-client获取违规数、代码行数。

demo如下:

public class SonarDemo {
    static String host = "http://xxx:9000";
    static String username = "xxx";
    static String password = "xxx";
    static String resourceKey = "org.codehaus.sonar:sonar-ws-client";
    static String[] MEASURES_TO_GET = new String[] { "violations", "lines" };
 
    public static void main(String[] args) {
        DecimalFormat df = new DecimalFormat("#.##");
        //创建Sonar
        Sonar sonar = new Sonar(new HttpClient4Connector(new Host(host, username, password)));
        //执行资源请求
        ResourceQuery query = ResourceQuery.createForMetrics(resourceKey, MEASURES_TO_GET);
        query.setIncludeTrends(true);
        Resource resource = sonar.find(query);
        // 循环遍历获取"violations", "lines"
        List<Measure> allMeasures = resource.getMeasures();
        for (Measure measure : allMeasures) {
            System.out.println((measure.getMetricKey() + ": " +
            df.format(measure.getValue())));
        }
    }
}
 

pom文件dependency如下:

<dependency>
  <groupId>org.codehaus.sonar</groupId>
  <artifactId>sonar-ws-client</artifactId>
  <!-- 推荐使用和SonarQube server相同的版本-->
  <version>4.3</version>
</dependency>
<dependency>
  <groupId>org.apache.httpcomponents</groupId>
  <artifactId>httpclient</artifactId>
  <version>4.3.4</version>
</dependency>

更多sonar metric请查看官方文档:http://docs.codehaus.org/display/SONAR/Metric+definitions

Sonar 的详细介绍:请点这里
Sonar 的下载地址:请点这里

本文永久更新链接地址

相关内容

    暂无相关文章