Вопрос

У меня простая проблема, вероятно, с простым ответом, но я не могу найти, в чем дело.Мы хотим развернуть SonarQube вместе с Checkstyle и некоторыми другими инструментами, но мы не можем выяснить, предназначен ли он для централизованного развертывания на сервере или на каждой машине разработчика?Во всех руководствах показаны установки на отдельных компьютерах и их использование на локальном хостинге, в то время как есть пример общедоступного экземпляра, а требования и спецификации, безусловно, выглядят как сервис.

С другой стороны, я не понимаю, как разработчики отправляют свой код для проверки, находится ли он на сервере.

Итак, вкратце, как это происходит?Любой контрольный список или что-то подобное было бы очень полезно.

Это было полезно?

Решение

sonarqube (ранее просто "сонар") - это серверная система. Конечно, вы можете установить его на локальной машине (требования к оборудованию минимально). Но это центральный сервер с базой данных.

Анализы выполняются некоторыми программным обеспечением Sonar «Client», которое может быть сонарным бегуном, задача Sonar Runsar, плагин Sonar Eclipse и т. Д. Результаты анализа могут быть автоматически загружены на сервер, где их можно получить через Сонар веб-приложение.

В среде со многими разработчиками вы должны запустить сервер сборки (например, HUDSON или Jenkins), который выполняет автоматическое анализ сонара в рамках ночной сборки. Возможны другие графики, но разработчики должны знать, когда они могут ожидать обновления результатов анализа боковых серверов. Результаты автоматизированного анализа могут быть отображены в редакторе Eclipse отдельных разработчиков в соответствии с плагином SONAR Eclipse.

Архитектурная документация на сонаре довольно редкая. Я искал фотографию, чтобы визуализировать то, что я только что описал, но не смог найти ...

Другие советы

Архитектура SonarQube "runtime" состоит из нескольких элементов:

  1. Сервер SonarQube.Он содержит базу данных (например, MySQL) и встроенный веб-сервер (Tomcat).Сервер SonarQube хранит результаты анализа (метрики), но не выполняет анализ кода.Этот сервер предоставляет веб-интерфейс, который показывает панель мониторинга проектов, различные показатели и детализацию кода, параметры администратора.Он использует подключаемую архитектуру - вы можете добавлять / удалять функциональность с помощью подключаемых модулей.
  2. Программа, выполняющая анализ кода на компьютере разработчика.Есть варианты: (а) если они используют Eclipse или IntelliJ, они могут использовать соответствующий подключаемый модуль SonarLint, который предоставляет свойства конфигурации, пункты меню для запуска анализа, представление для отображения нарушений и т.д.; (b) разработчики также могут запускать анализ кода с помощью maven (mvn sonar:sonar) или gradle (gradlew sonarqube); (c) разработчики могут выполнять различные анализы кода с помощью программы под названием SonarQube Runner.Все эти параметры программ, которые запускают анализ на компьютере разработчика, должны быть настроены для взаимодействия с сервером SonarQube.Например, когда вы запускаете анализ кода в IntelliJ с помощью SonarLint, показатели будут загружены на сервер.Этот сервер обычно используется всеми разработчиками совместно, но он также может быть локальным.
  3. Программа, выполняющая анализ кода на сервере CI/CD.Задание/конвейер, который создает программный проект, может быть сконфигурирован для запуска анализа кода SonarQube.Это можно сделать с помощью maven или gradle точно так же, как на компьютере разработчика, или с помощью подключаемого модуля.Есть Подключаемые модули SonarQube CI для Дженкинса, Хадсона, Бамбука и других.В зависимости от размера вашего проекта, вы можете захотеть настроить анализ кода так, чтобы он запускался только один раз в день, а не при каждой фиксации кода или изменениях зависимостей.Анализ кода SonarQube, выполненный на сервере CI, аналогичным образом отправит сгенерированные показатели на сервер SonarQube.

Документация по архитектуре SonarQube очень скудна (если не сказать отсутствует), поэтому трудно получить общую картину.Я надеюсь, что это поможет.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top