Обзор инструментов проверки качества кода на основе SonarQube

задняя часть maven Jenkins SonarQube
Обзор инструментов проверки качества кода на основе SonarQube
作者 陈彩华
文章转载交流请联系 caison@aliyun.com

Недавно компания представила платформу автоматической проверки кода, и выбор технологии заключается в выборе SonarQube, Резюме выглядит следующим образом:

1 Обзор

SonarQube (сонар) — это платформа с открытым исходным кодом для управления качеством исходного кода. SonarQube — это не только инструмент для создания отчетов о качестве данных, но и платформа для управления качеством кода. Поддерживает управление качеством кода и тестирование более чем 20 языков программирования, таких как java, C#, C/C++, PL/SQL, Cobol, JavaScript, Groovy и т. д. SonarQube может определять качество кода по следующим семи измерениям, и вам, как разработчику, необходимо иметь дело как минимум с первыми 5 видами проблем с качеством кода.

  • (1) Не следует стандартам кодаSonarQube может стандартизировать написание кода с помощью PMD, CheckStyle, Findbugs и других инструментов обнаружения правил кода.
  • (2) Потенциальные дефектыSonarQube может обнаруживать потенциальные дефекты с помощью инструментов обнаружения правил кода, таких как PMD, CheckStyle, Findbugs и т. д.
  • (3) плохое распределение сложностиФайлы, классы, методы и т. д. трудно изменить, если они слишком сложны, что затрудняет их понимание разработчиками, а без автоматизированного модульного тестирования изменения любого компонента в программе могут привести к необходимости комплексного регрессионного тестирования.
  • (4) повторениеОчевидно, что код, который содержит много копий и вставок в программе, имеет низкое качество, SonarQube может показать серьезные повторения в исходном коде.
  • (5) Недостаточное или чрезмерное количество комментариевОтсутствие комментариев сделает код менее читабельным, особенно когда кадровые перестановки неизбежны, читабельность программы сильно снизится, а слишком большое количество комментариев заставит разработчиков тратить слишком много сил на чтение комментариев, также вопреки первоначальному замыслу.
  • (6) Отсутствие юнит-тестовSonarQube может легко подсчитывать и отображать покрытие юнит-тестами.
  • (7) плохой дизайнС помощью SonarQube можно находить циклы, отображать взаимозависимость между пакетами и классами, классами и классами, а также обнаруживать пользовательские правила архитектуры.С помощью SonarQube можно управлять сторонними пакетами jar, а LCOM4 можно использовать для обнаружения Применение правил одиночной задачи Обнаружение связи.

Ниже описано, как выполнить непрерывное определение качества кода на основе Jenkins и SonarQube.

2 Подготовка окружающей среды

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

  • Java-среда
  • Среда Maven
  • Платформа SonarQube
  • Платформа Дженкинса
  • База данных (например, MySQL)

3 Конфигурация среды

3.1 Maven

Чтобы использовать Jenkins на основе Maven, вам необходимо настроить конфигурацию сонара в файле conf/setting.xml в каталоге установки Maven.

    <profile>
      <id>sonar</id>
      <activation>
          <activeByDefault>true</activeByDefault>
      </activation>
      <properties>
           <!-- 平台登录的账号的用户名 -->
          <sonar.login>你的用户名</sonar.login>
          <!-- SonarQube平台登录的账号的密码 -->
          <sonar.password>你的密码</sonar.password>
          <!-- SonarQube访问地址 -->
          <sonar.host.url>http://sonar.ibeiliao.net:9000</sonar.host.url>
          <!-- 代码分析包括哪些文件需要分析,英文逗号分隔  -->
          <sonar.inclusions>**/*.java,**/*.xml</sonar.inclusions>
      </properties>   
    </profile>

и используйте сонар для активации профиля

4 Инструкция по применению

4.1 Jenkins

Создайте новую задачу:

  • Шаг 1 Создайте Выберите создание бесплатного программного проекта

  • Шаг 2. Настройте управление исходным кодом Здесь Git используется для управления исходным кодом, а gitlab — как библиотека исходного кода. Ветка проекта заполняет мастер

  • Шаг 3 Настройка строить триггеры H 18 * * * настроен здесь, что означает регулярное строительство до 18:00 каждый день

  • Шаг 4 Настройте сборку В первой строке используется плагин jacoco для тестирования покрытия кода. Вторая строка использует плагин сонара для обнаружения кода и отправки результатов обнаружения.

clean org.jacoco:jacoco-maven-plugin:prepare-agent install -Dmaven.test.failure.ignore=true -P dev

sonar:sonar

  • Шаг 5. Настройте шаги после сборки, отправьте электронное письмо Вам нужно заранее настроить почтовый ящик в Jenkins

4.2 SonarQube

Схема базовой архитектуры SonarQube

SonarQube基本架构图

SonarQube и схема архитектуры непрерывной интеграции проекта

SonarQube与项目持续集成架构图

4.2.1 Описание SonarQube

4.2.2 Разработчики используют SonarQube на основе Maven локально

Ежедневная сборка Jenkins по умолчанию использует master.В процессе разработки иногда необходимо выполнить обнаружение кода в ветке разработки разработчика. метод:

  • Шаг 1. Настройте Maven в соответствии с3.1 MavenИнструкции по настройке для настройки локальной среды Maven

  • Шаг 2. Обнаружение триггера В каталоге верхнего уровня проекта выполните команду: mvn sonar:sonar

4.2.3 Описание соответствующих индикаторов

指标

4.2.4 Пороги качества кода

Статистика общего качества кода,Может помочь пользователям понять, готов ли проект к производству

Конфигурация по умолчанию (может быть изменена в соответствии с реальной ситуацией проекта):

默认质量阈配置

Более поздняя перспектива

  • В настоящее время подключено только обнаружение кода Java, а обнаружение кода клиента и внешнего интерфейса также будет представлено позже.
  • Исторические проблемы будут исправляться поэтапно и постепенно в зависимости от реальной ситуации.
  • Регулярно суммируйте, уменьшите или избежать введения одинаковых проблем с качеством в новых проектах и ​​новом коде

Более интересно, добро пожаловать на официальный аккаунт автора [архитектура распределенной системы]

Ссылаться на

Инструмент проверки качества кода SonarQube