在 Sonarqube 5.2 中从 Project_Measures 检索 Measure_Data 的最佳方法是什么

What Is The Best Way to Retrieve Measure_Data From Project_Measures in Sonarqube 5.2

目前我正在将内部 SonarQube 插件从 SonarQube 4.5.1 移植到 SonarQube 5.2,因为我们依赖于尚未发布的功能 (use any Guava version in plugins)。

现在,我很难从 SQL table project_measures 获取自定义度量的数据。在以前的版本中,我使用了 class DatabaseSessionMeasureModel,但是那些 classes 不再可用(参见那些提交 29ae9b385a7bf720ae89637582c862df43b7fd0d183b104dadd5b350d4d00a1ef2336094755e5f4fGithub repository) 中。

你能告诉我现在获取自定义度量数据的最佳方法是什么吗?也许网络服务?

此致

施里夫斯拉赫

更新:

我尝试使用 org.sonar.db.DbSessionorg.sonar.db.measure.MeasureDao 但是当我安装插件并启动 SonarQube 时,我得到一个 ClassNotFoundException 因为那些 classes 没有被加载服务器。

首先感谢您测试正在开发中的5.2版本。请注意,它还远未稳定,因此尚未准备好投入生产。

有几个(很好的)原因导致无法再使用这些 类 :

  • 一直建议不要将数据库视为API,因此插件不应直接通过 DAO 加载数据。此约束自 5.2 起强制执行。无法再从插件访问核心 类。

  • 最烦人的约束(也是投票最多的 JIRA 票)是让代码分析器连接到数据库(读取和写入)。经过几个月(几年?)的发展,这种联系终于被取消了。这是一个很大的变化。它将解锁许多新功能,例如 Github (http://docs.sonarqube.org/display/PLUG/GitHub+Plugin).

  • 的插件

也就是说,提取数据的唯一方法是使用网络服务。在 5.2 中做了很大的努力来实现以前版本中缺少的大部分 WS。例如 api/custom_measures 可能对您有用。