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>