2013-05-06 2 views
3

У меня установлен сервер сонара на моем локальном хосте. И я могу запустить и проанализировать проект java. Даже я установил плагин сонара на затмение.Вызов сонара из моей программы java

Но я хочу запустить сонар из моего проекта java (например, простого класса java) и должен получить результаты сонара и сохранить его в базе данных. Я искал учебник, но не смог найти ответ для этого. Пожалуйста, любой может предоставить образец кода или ресурс, где я могу получить знания, чтобы справиться с этой задачей.

import javax.annotation.Resource; 


import org.sonar.wsclient.Host; 
import org.sonar.wsclient.Sonar; 
import org.sonar.wsclient.connectors.HttpClient4Connector; 
import org.sonar.wsclient.services.*; 

public class SonarTask1{ 

public static void main(String[] args) { 
    //public void Hi(){ 
    String url = "http://localhost:9000"; 
    String login = "admin"; 
    String password = "admin"; 
    Sonar sonar = new Sonar(new HttpClient4Connector(new Host(url, login, password))); 

    String projectKey = "java-sonar-runner-simple"; 
    String manualMetricKey = "burned_budget"; 

    sonar.create(ManualMeasureCreateQuery.create(projectKey, manualMetricKey).setValue(50.0)); 

    for (ManualMeasure manualMeasure : sonar.findAll(ManualMeasureQuery.create(projectKey))) { 
     System.out.println("Manual measure on project: " + manualMeasure); 
    } 
    } 

} 

ответ

3

Есть 2 вещи, которые вы можете сделать из программы Java:

  • запуск анализа Sonar: взгляд в Sonar Ant Task (в методе #launchAnalysis), чтобы увидеть, как сделать это очень легко.

  • получить результаты от сервера эхолота: проверить Web API для этой цели

+0

Могу ли я узнать, какие зависимости я требую для этого. Зависимости в «API-интерфейсе клиентских веб-сервисов», упомянутые выше, не загружаются в мой maven repo. – user2215139

+0

. Вероятно, вы забыли добавить версию к зависимости (это не указано в документации по мере изменения версий). Вы можете использовать версию 3.5.1 –

+0

ya я добавил sonar-ws-client 3.5.1 и commons-httpclient 3.1 в качестве внешних банок и написал программу как обновленную выше, но получаю исключение "java.lang.NoClassDefFoundError: org/apache/http/client/methods/HttpRequestBase \t at com.vxl.appanalytix.controllers.controllerClasses.SonarTask1.main (SonarTask1.java:17) Вызвано: java.lang.ClassNotFoundException: org.apache.http.client.methods.HttpRequestBase. – user2215139

-1

О "java.lang.NoClassDefFoundError: орг/Apache/HTTP/клиент/методы/HttpRequestBase" Вы должны это зависимостей (Sonar WS использует их)

<dependency> 
    <groupId>org.apache.httpcomponents</groupId> 
    <artifactId>httpclient</artifactId> 
    <version>4.3.1</version> 
</dependency> 

<dependency> 
    <groupId>commons-logging</groupId> 
    <artifactId>commons-logging</artifactId> 
    <version>1.1.1</version> 
</dependency> 


<dependency> 
    <groupId>org.slf4j</groupId> 
    <artifactId>jcl-over-slf4j</artifactId> 
    <version>1.7.7</version> 
</dependency> 

<dependency> 
    <groupId>org.slf4j</groupId> 
    <artifactId>slf4j-simple</artifactId> 
    <version>1.6.2</version> 
</dependency> 

Кроме того, я бы рекомендовал при использовании Eclipse IDE, обновление Maven проекта и проверить обновление силы снимков/релизов, потому что как-то org.apache.httpclient не в состоянии быть признан классом

Смежные вопросы