Интеграция Jenkins,Maven,Nexus,SonarQube

Установка связки Jenkins,Maven,Nexus,SonarQube рассмотрена в предыдущей статье

Maven будет собирать проект, загружать артифакты на Nexus-репозитарий, а SonarQube будет анализировать код
Выполним это в трех вариантах:

Рассмотрим первый вариант — Без Jenkins ( с помощью командной строки и команд mvn)

Maven ищет конфигурационный файл settings.xml в двух местах
— в директории,где установлен Maven, в каталоге conf

— в домашнем каталоге пользователя в каталоге.m2

Если оба файла существуют, то они объединяются Maven-ом с приоритетом содержания пользовательского settings.xml файла

Для примера, пользователь, под которым будем выполнять команды mvn — jenkins
1. Синтаксис/шаблон settings.xml берем из ${maven.home}/conf/settings.xml
2. Создаем файл с доступами в Nexus-репозитарий в  домашнем каталоге пользователя Jenkins/.m2/settings.xml

3.В WEB-интерфейсе Nexus создаем
А) репозитарий Maven с именем my-maven-repo c типом hosted и форматом maven2
Б) Пользователя my-maven-user с паролем my-maven-password

4. В корневом pom.xml файле проекта проверяем/добавляем

5.Переключаемся на пользователя jenkins

и выполняем загрузку кода, сборку Maven-ом проекта и загрузку артифактов на Nexus-сервер

 

Подключаем SonarQube для анализа кода проекта
1. Добавить в домашний каталог пользователя, под которым запускаем mvn-команду, в файл settings.xml

Мы выполняем команду под пользователем jenkins
переключимся на пользователя jenkins

поэтому в его домашнем каталоге по пути
~/.m2/settings.xml добавим следующий код для SonarQube

2.После чего выполнить команду, находясь под пользователем Jenkins

В результате на SonqrQube сервера появится проанализированный проект, который собрал maven

Если используется аутентификация в SonarQube(Для включения аутентификации в SonarQube заходим в WEB-интерфейс-Configuration→Security→Force user authentication)
,тогда необходимо использовать либо токен либо логин/пароль для аутентификации на SonarQube-сервере

— если использовать токен

— если использовать логин/пароль

Предварительно в SonarQube после включения принудительной аутентификации необходимо создать пользователя с правами Execute Analysis через WEB-интерфейс SonarQube

Источник:

https://docs.sonarqube.org/display/SCAN/Analyzing+with+SonarQube+Scanner+for+Maven
http://jagadesh4java.blogspot.com/2016/08/sonar-integration-with-maven.html

 

Рассмотрим второй и третий варинты — С помощью Freestyle и Pipeline проекта в Jenkins
Первые три пункта общие

1.Установить плагин SonarQube для jenkins
https://plugins.jenkins.io/sonar

2.Настройка SonarQube server в jenkins

Также включаем вставку переменных окружения SonarQube-сервера при сборке

Если SonarQube требует аутентификации,то создаем в WEB-интрефейсе SonarQube пользователя с правом Execute Analysis и генерируем для него токен. Значение этого токена добавляем в поле
Server authentication token

3.Настройка Sonar-runner в jenkins

 

Настройка Freestyle проекта Jenkins для сбора проекта с помощью Maven с последующим анализом кода SonarQube

Если SonarQube требует аутентификации И в глобальной конфигурации SonarQube не указан токен пользователя (см. Пункт 2), тогда необходимо в свойствах (Properties) в расширенных настройках Maven сборки указать значение токена или логин/пароль пользователя для аутентификации в SonarQube
Например, при использовании токена вид Maven-шага будет таким

 

Настройка Pipeline проекта Jenkins для сбора проекта с помощью Maven с последующим анализом кода SonarQube

 

Если не использовать Maven вообще(например, просто анализ кода SonarQube-ом),

FreeStyle-проект для анализа кода средствами SonarQube имеет вид

Если не указан токен пользователя SonarQube в глобальних параметрах Jenkins, то в сборке в свойствах SonarQube сканер в поле Analysis properties добавляем параметр
sonar.login=token_value

В корне проекта(если путь в строке path_to_project_properties установлен как на рисунке./sonar-project-properties) должен находиться файл с именем sonar-project-properties.
Минимальный набор параметров,который он должен содержать

https://docs.sonarqube.org/display/SONAR/Analysis+Parameters

Определить все необходимые или дополнительные параметры также можно и в поле Analysis properties

Pipeline сборка для анализа кода с помощью SonarQube будет иметь вид

Комментирование и размещение ссылок запрещено.

Комментарии закрыты.

Яндекс.Метрика