Как связать Jenkins с SonarQube 4.3?
Я пытаюсь перенести задания по сборке из Хадсона в Дженкинс (версия 2.32.1). Сборка Maven работает нормально, но шаг сборки Maven для SonarQube не работает. Я использую плагин Jenkins SonarQube версии 2.5.
Моя конфигурация SonarQube (после добавления сканера SonarQube):
Моя среда сборки (после настройки сканера SonarQube с использованием переменных среды):
Мой этап сборки Maven (после анализа с помощью SonarQubeScanner для Maven):
Журнал консоли Jenkins:
[INFO] SonarQube version: 4.3
INFO: Default locale: "en_US", source code encoding: "cp1252"
INFO: Work directory: /home/jenkins/.jenkins/jobs/test/workspace/target/sonar
INFO: SonarQube Server 4.3
[INFO] [15:34:56.104] Load batch settings
[INFO] [15:34:56.248] User cache: /home/jenkins/.sonar/cache
[INFO] [15:34:56.254] Install plugins
[INFO] [15:34:56.320] Install JDBC driver
[WARN] [15:34:56.329] H2 database should be used for evaluation purpose only
[INFO] [15:34:56.329] Create JDBC datasource for jdbc:h2:tcp://localhost/sonar
[ERROR] Fail to connect to database
Журналы показывают, что Дженкинс использовал неверный URL базы данных (H2 вместо PostgreSQL).
Что я не прав?
1 ответ
Я нашел обходной путь. Я посмотрел на исходный код плагина Jenkins SonarQube (потому что не смог найти документацию) и нашел список открытых переменных среды:
Введите переменные среды, связанные с выбранной установкой SonarQube.
Следующие переменные могут быть установлены в зависимости от конфигурации:
- SONAR_HOST_URL
- SONAR_AUTH_TOKEN
- SONAR_LOGIN
- SONAR_PASSWORD
- SONAR_JDBC_URL
- SONAR_JDBC_USERNAME
- SONAR_JDBC_PASSWORD
- SONAR_EXTRA_PROPS
- SONAR_MAVEN_GOAL - предоставляет правильную цель Maven на основе "версии sonar-maven-plugin", указанной для экземпляра SonarQube.
Эти переменные полезны при настройке анализа SonarQube с использованием стандартных шагов сборки, таких как Maven, Gradle, Ant и сценарии командной строки. Эта функция не нужна, если вы используете этапы сборки "SonarQube Scanner" или "SonarQube Scanner for MSBuild".
После добавления -Dsonar.jdbc.url=$SONAR_JDBC_URL
на мой шаг сборки: