目前我正在将SonarQube 4.5.1的内部SonarQube插件移植到SonarQube 5.2,因为我们依赖于尚未发布的功能(use any Guava version in plugins)。
现在,我很难从SQL表project_measures
获取自定义度量的数据。在之前的版本中,我使用了课程DatabaseSession
和MeasureModel
,但这些课程不再可用(请参阅Github repository中的提交29ae9b385a7bf720ae89637582c862df43b7fd0d
和183b104dadd5b350d4d00a1ef2336094755e5f4f
)。
您能告诉我现在获取自定义度量数据的最佳方法吗?也许是网络服务?
最好的问候
Schrieveslaach
我尝试使用org.sonar.db.DbSession
和org.sonar.db.measure.MeasureDao
但是当我安装插件并启动SonarQube时,我得到ClassNotFoundException
,因为服务器没有加载这些类。
答案 0 :(得分:0)
首先,感谢您测试正在开发的5.2版本。请注意,它远非稳定,因此它不是生产就绪的。
有几个(好的)原因,为什么不再可能使用这些类:
始终建议不要将数据库视为API,因此插件不应直接通过DAO加载数据。自5.2以来强制执行此约束。插件不再能访问核心类。
最烦人的约束(因此投票最多的JIRA票证)是将代码分析器连接到数据库(读取和写入)。经过几个月(几年?)的发展,这种联系终于被取消了。这是一个很大的变化。它将解锁许多新功能,例如Github的插件(http://docs.sonarqube.org/display/PLUG/GitHub+Plugin)。
话虽这么说,提取数据的唯一方法是使用Web服务。在5.2中实现了大部分在先前版本中缺少的WS。例如,api / custom_measures可能对您有用。