我已经在我的localhost上安装了声纳服务器。我能够运行和分析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);
}
}
}
答案 0 :(得分:3)
您可以从Java程序中做两件事:
启动声纳分析:查看Sonar Ant Task(方法#launchAnalysis),了解如何轻松完成此操作。
从Sonar服务器检索结果:为此目的检查Web API
答案 1 :(得分:-1)
关于" java.lang.NoClassDefFoundError:org / apache / http / client / methods / 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无法通过类路径识别