从我的java程序中调用Sonar
我在我的localhost上安装了声纳服务器。 我能够运行和分析java项目。 甚至我已经在eclipse上安装了声纳插件。
但我想从我的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); } } }
您可以通过Java程序执行以下两项操作:
-
启动声纳分析:查看Sonar Ant任务 (在#launchAnalysis方法中),看看如何轻松完成。
-
从Sonar服务器检索结果:检查Web API以实现此目的
关于“java.lang.NoClassDefFoundError:org / apache / http / client / methods / HttpRequestBase”你需要这个依赖项(Sonar WS使用它们)
org.apache.httpcomponents httpclient 4.3.1 commons-logging commons-logging 1.1.1 org.slf4j jcl-over-slf4j 1.7.7 org.slf4j slf4j-simple 1.6.2
另外,我建议在使用Eclipse IDE时,更新maven项目并检查快照/版本的强制更新,因为org.apache.httpclient无法通过类路径识别