2016-12-05 13 views
0

Я хочу вычислить некоторые показатели сложности и качества для java-кода в пользовательском плагине SonarQube. Для этих показателей требуются различные меры, такие как количество переменных, операндов, соединений с базами данных, функций и т. Д. SonarQube CoreMetrics предоставляет лишь некоторые из них, и я не хочу создавать полный парсер java-файлов для их измерения самостоятельно. Итак, есть некоторые вопросы о том, как это сделать:Есть ли способ измерить различные метрики кода Java в SonarQube

Есть ли способ собрать больше необходимых значений сонаркой или существующим плагином, чем доступно в CoreMetrics?

Если нет, знает ли кто-нибудь хороший Java-парсер/сканер с открытым исходным кодом, который измеряет множество показателей размера из исходного кода, который я могу использовать в своем проекте?

Большое спасибо за любые советы и предложения.

ответ

1

Если я правильно понимаю, лучший способ достичь этого - попытаться реализовать какое-то пользовательское правило (см. Это tutorial).

Вы будете реализовывать посетителя в анализируемом файле и это позволит вам выполнить любые вычисления, которые вы хотите в java-коде.

+0

Спасибо за ваш совет, но я не хочу определять некоторые правила кодирования, чтобы отображать их как ошибки или запахи кода. Я хочу рассчитать различные параметры в исходном коде Java, такие как переменные, методы и т. Д., Чтобы вычислить некоторые показатели из них, например, Halsteads Complexity Metric. Мне кажется, что правила - это неправильный способ сделать это, потому что они проверяют только некоторые конструкции в коде или нет. Или я ошибаюсь? – Nirvanson

+0

У вас есть доступ к синтаксическому анализатору и API для сообщения о проблемах. Просто не используйте API-интерфейс для отчета и используйте парсер для вычисления любой метрики, о которой вы можете думать. – benzonico