Я решил попробовать SonarQube для своих проектов. У меня есть проект Spring Boot, полностью написанный на Kotlin.
Проблема в том, что Sonar сканирует только pom.xml и игнорирует все остальное. Это легко увидеть, когда вы перейдете на вкладку «Код» проекта:

Также журналы mvn sonar:sonar
говорят:
[INFO] Конфигурация проекта:
[INFO] 1 файл проиндексирован
Тогда я подумал, что мне, вероятно, нужно как-то настроить Плагин Kotlin Sonar для проекта, но позже я пришел к мысли, что он должен работать из коробки без какой-либо конфигурации. Например, если я перейду к http://start.spring.io и инициализирую новый проект Kotlin, он будет проиндексирован с помощью mvn sonar:sonar
.
Хорошо, новый проект Spring Boot Kotlin будет проиндексирован, но мой проект не будет,До сих пор не ясно, в чем проблема.
Я нашел самый простой способ воспроизвести проблему на другом общедоступном проекте:
- Запустите Sonar в Docker, используя этот compose-файл
- checkout kotlin-examples repo и перейдите в папку
maven
- теперь выполняйте
mvn sonar:sonar
для dagger-maven-example
и hello-world
Результат: источники Kotlin проиндексированы для hello-world
, но не для dagger-maven-example
. В чем может быть проблема и чем эти проекты отличаются? Вы можете попробовать отсканировать другие примеры, querydsl-maven-example
тоже не работает.