У меня установлен сервер сонара на моем локальном хосте. И я могу запустить и проанализировать проект 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);
}
}
}
Могу ли я узнать, какие зависимости я требую для этого. Зависимости в «API-интерфейсе клиентских веб-сервисов», упомянутые выше, не загружаются в мой maven repo. – user2215139
. Вероятно, вы забыли добавить версию к зависимости (это не указано в документации по мере изменения версий). Вы можете использовать версию 3.5.1 –
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