Как настроить SonarCloud
У меня есть проект Java, и я хочу интегрировать его с SonarCloud. Следую официальным шагам:
Проверка кода с помощью сканера SonarQube #
Перед проверкой вашего кода вам необходимо:
- Создайте токен аутентификации пользователя для вашей учетной записи в SonarCloud.
- Зашифруйте этот токен, зашифруйте travis abcdef0123456789 или определите SONAR_TOKEN в настройках своего репозитория.
- Найдите, к какой организации SonarCloud.io вы хотите продвинуть свой проект, и получите его ключ
- Создайте файл sonar-project.properties для своего проекта (см. Документацию). Затем добавьте следующие строки в ваш файл.travis.yml, чтобы запустить анализ:
добавить в мой файл travis.yml
addons:
sonarcloud:
organization: "xelian-github"
token:
secure: ${SONAR_TOKEN}
branches:
- master
script:
# other script steps might be done before running the actual analysis
- sonar-scanner
Где SONAR_TOKEN - это переменная в Travis CI, указывающая на ключ из SonarCloud (он не зашифрован). Из SonarCloud добавляю разрешения
Но когда я запускаю сборку travis, у меня появляется следующая ошибка:
Setting environment variables from repository settings
$ export SONAR_TOKEN=[secure]
....
ERROR: Error during SonarQube Scanner execution
ERROR: You're only authorized to execute a local (preview) SonarQube analysis without pushing the results to the SonarQube server. Please contact your SonarQube administrator.
ERROR:
ERROR: Re-run SonarQube Scanner using the -X switch to enable full debug logging.
Мне кажется, что у меня нет прав на загрузку результатов в SonarCloud. Это проблема в токене или в некоторых конфигурациях сонара.
2 ответа
Официальной точкой входа для настройки проекта в SonarCloud является страница "Начало работы":
Вы увидите, что для проектов Maven вам не нужно создавать
sonar-project.properties
файл вообщеВы даже найдете ссылку на пример проекта Maven, который анализируется на SonarCloud
Наконец-то я нахожу решение. В корневом пути к файлу yml вы должны добавить:
sonar-project.properties
# Required metadata
sonar.projectKey=java-sonar-runner-simple:master
sonar.projectName=Rss-service
sonar.projectVersion=1.0
# Comma-separated paths to directories with sources (required)
sonar.sources=/microservice-application/rss-reader-service/src/main/java
sonar.java.binaries=/microservice-application/rss-reader-service/target/classes
# Language
sonar.language=java
# Encoding of the source files
sonar.sourceEncoding=UTF-8
И в travis.yml я добавляю: script:
# other script steps might be done before running the actual analysis
- mvn clean org.jacoco:jacoco-maven-plugin:prepare-agent install sonar:sonar
Редактировать:
sonar-project.properties не обязательно. Только maven цели имеют смысл.