我正在尝试开发一个声纳插件,它会生成一个关于后期工作的报告。
最初我开始使用sonarqube 5.0.1和sonar api 4.5.1。我使用web服务api开发插件。但是,每次声纳分析时,sonarqube都会抛出500个内部异常。在一些调试我理解,因为我正在做很多调用sonarqube抛出那个错误。然后我在每次调用之间添加了一些延迟并重试逻辑,它开始正常工作。
经过进一步调查,我发现SensorContext有一个名为getMeasure的方法。然后我用getMeasure调用替换了web服务调用。一切正常,直到我试图获得sqale_index。 api返回的值是一个双数。但我想用小时/天格式。然后我用谷歌搜索了如何转换它,我知道我必须使用一个公式。我使用了sqale公式,但它与Web服务api返回的值不匹配。所以我又回去使用网络服务api。
希望较新版本的sonarqube和sonar api解决我的问题,我转而使用sonarqube 5.4和sonar api 5.3。
作为试用版,我使用新版本运行了我的插件,并且我发现getMeasure调用在工作时无法工作并抛出异常,因为在5.3中,不推荐使用getMeasure,传感器应该只保存数据而不是读取数据。
然后我想使用装饰器,因为5.2它们也被弃用了。所以我再次回到使用web服务api,无论sonarqube版本或sonar api版本。我在我的代码库上运行了分析,尽管增加了更多的延迟和更多的重试,我在大多数Web服务调用上获得了500个内部异常。
现在我厌倦了,不知道如何开发插件。我不知道为什么sonarqube团队正在弃用一切,他们完全忘记了java中弃用的含义。
任何人都可以帮助我如何摆脱500内部异常或如何从声纳api获取指标详细信息。
谢谢。