作者 陈彩华
文章转载交流请联系 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 и схема архитектуры непрерывной интеграции проекта
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, а обнаружение кода клиента и внешнего интерфейса также будет представлено позже.
- Исторические проблемы будут исправляться поэтапно и постепенно в зависимости от реальной ситуации.
- Регулярно суммируйте, уменьшите или избежать введения одинаковых проблем с качеством в новых проектах и новом коде
Более интересно, добро пожаловать на официальный аккаунт автора [архитектура распределенной системы]