Как настроить SonarCloud

У меня есть проект Java, и я хочу интегрировать его с SonarCloud. Следую официальным шагам:

Проверка кода с помощью сканера SonarQube #

Перед проверкой вашего кода вам необходимо:

  1. Создайте токен аутентификации пользователя для вашей учетной записи в SonarCloud.
  2. Зашифруйте этот токен, зашифруйте travis abcdef0123456789 или определите SONAR_TOKEN в настройках своего репозитория.
  3. Найдите, к какой организации SonarCloud.io вы хотите продвинуть свой проект, и получите его ключ
  4. Создайте файл 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 цели имеют смысл.

Другие вопросы по тегам