IntelliJ IDEA предлагает функциональность, помогающую улучшить наше кодирование в среде IDE при написании кода в качестве намерений. Намерения могут использоваться в пакетном режиме для проверки кода на наличие шаблонов во всем исходном коде и даже расширяться до анализа командной строки или добавляться в непрерывную интеграцию. В этом посте рассказывается о готовых функциях IntelliJ и их расширении с помощью пользовательских намерений, созданных в Sensei.
Проверки IntelliJ
Функция проверки IntelliJ управляет отображением многих ошибок, о которых динамически сообщается в IDE при кодировании, например
- обнаружение абстрактных классов, которые могут быть преобразованы в интерфейсы,
- определение избыточных полей класса, которые могут быть локальными,
- предупреждение об использовании устаревших методов,
- и т.д.
Эти проверки выделяют код, который соответствует в идеях и действиях, которые часто имеют соответствующее быстрое исправление.
Подсветка ВИДЕО в реальном времени, когда код соответствует проверке, может помочь нам динамически улучшать наше кодирование. После выявления проблемы в коде использование IntelliJ Intention Actions для быстрого исправления кода может усилить лучшие шаблоны.
Профиль инспекций
Проверки могут выполняться как пакетно из среды IDE, так и из командной строки или в процессе непрерывной интеграции.
Ключом к работе с инспекциями IntelliJ в пакетном режиме является использование профиля инспекций.
IntelliJ имеет два профиля проверки по умолчанию: один хранится в проекте, а другой – в IDE.
Новые профили проверки могут быть созданы для настройки определенных плагинов или вариантов использования напр.
- Запускайте проверку только в режиме реального времени
- Выполняйте определенный набор правил Сенсея
- Запустите проверку HTML-кода
Проверки в профиле можно включить или отключить в настройках IntelliJ. Диалоговое окно Настроек также является простым способом ознакомиться с диапазоном доступных проверок.
Значок “инструмент” позволяет вам дублировать профиль и создавать новый профиль для сбора определенного набора правил.
Запуск профиля проверки в IDEA
Профили проверки можно запускать из среды IDE с помощью кода Analyze \ Inspect...
меню.
Функция анализа позволяет вам управлять областью, в которой будет выполняться проверка, например, для всего проекта, включая или исключая тестовые источники, или для определенного набора файлов.
Вы также можете управлять профилями проверки отсюда, чтобы создать или настроить определенный профиль.
Щелчок [OK]
в диалоговом окне “Указать область проверки” IntelliJ запустит все выбранные проверки в профиле в определенной области.
IntelliJ сообщит о результатах выполнения проверок на вкладке Результаты проверки
.
Плагин Sensei от Secure Code Warrior позволяет создавать собственные рецепты, соответствующие коду. Sensei тесно интегрируется с IntelliJ, чтобы сделать эти пользовательские рецепты такими же естественными в использовании, как действия IntelliJ Intention. Это означает, что они загружаются в IntelliJ в качестве проверок и могут быть сгруппированы, включены и отключены с помощью профилей проверок. Создание пользовательского профиля проверки и последующее использование функции анализа кода проверки – рекомендуемый способ массового запуска рецептов Sensei по всему проекту.
Запуск профиля проверки из командной строки
IntelliJ имеет возможность запускать проверки из командной строки, как задокументировано JetBrains:
В основном я использую Mac OS и могу запустить один экземпляр IntelliJ из командной строки с помощью:
open -na "IntelliJ IDEA CE.app"
Чтобы облегчить выполнение, я добавляю это в сценарий командной оболочки.
ви/usr/local/bin/idea
Содержимое скрипта взято из официальной документации, предоставленной IntelliJ.
#!/bin/sh open -na "IntelliJ IDEA CE.app" --args "$@"
Затем я создал этот исполняемый файл, чтобы упростить процесс проверки командной строки.
chmod 755/usr/local/bin/idea
Официальные документы intellij описывают общую форму команды проверки следующим образом:
idea inspect <проект> <инспекционный профиль> <выходные данные> [<параметры>]
На практике я полностью квалифицирую пути:
idea inspect /Users/user/GitHub/sensei-blog-examples /Users/user/GitHub/sensei-blog-examples/.idea/inspectionProfiles/senseiprofile.xml /Users/user/GitHub/sensei-blog-examples/scan-results
Это запускает все проверки, которые я добавил в профиль сенсея
и сообщает о результатах в папке scan-results/|.
Просмотр Результатов Проверки
Мы можем сообщить об этих результатах из непрерывной интеграции, как мы увидим позже.
Мы также можем просмотреть их в самом IntelliJ, используя Analyse \ View Результаты проверки в автономном режиме…
особенность.
Это позволит загрузить результаты на вкладку Результаты проверки
.
Это официально задокументировано на сайте JetBrains:
Это может быть использовано во время процесса проверки кода, если выполнение командной строки было включено в процесс непрерывной интеграции, и проверяющие хотели проверить полный исходный контекст любой записи результатов проверки.
Профили контроля в непрерывной интеграции
При добавлении проверки командной строки в непрерывную интеграцию мы в идеале хотим, чтобы отчет создавался автоматически, и для нас открыт ряд вариантов.
TeamCity предлагает готовую поддержку профилей проверки в режиме непрерывной интеграции.
Плагин Jenkins Warnings NG поддерживает вывод командной строки из IntelliJ Inspections в качестве одного из форматов отчетов.
- Плагин Jenkins Warnings NG поддерживает вывод командной строки из IntelliJ Inspections в качестве одного из форматов отчетов.
- Плагин Jenkins Warnings NG поддерживает вывод командной строки из IntelliJ Inspections в качестве одного из форматов отчетов.
Проекты сообщества, такие как idea CLI Inspector
, существуют для поддержки использования профилей проверки в других инструментах CI т.е.
Будущее профилей проверки в процессе CI выглядит еще более радужным с внедрением проекта JetBrains Qodana. Проект Qodana представляет собой безголовую версию IntelliJ с официальными действиями Github и изображениями Docker.
В настоящее время Godana находится в стадии бета-тестирования, но команда Sensei следит за ней, чтобы она стала официально поддерживаемой платформой для запуска правил Sensei в рамках непрерывной интеграции.
Резюме
Действия с намерением позволяют нам усиливать шаблоны кодирования и быстро исправлять их в IDE, когда мы допускаем ошибки во время кодирования.
Профили проверки позволяют нам собирать их в профили, которые могут выполняться в пакетном режиме в качестве действия анализа и проверки кода. Это может быть полезно, если мы сталкиваемся с шаблоном и хотим перепроверить, не пропустили ли мы его где-нибудь еще в нашем коде.
Профили проверки могут запускаться из командной строки и даже включаться в процессы непрерывной интеграции, поддерживающие модель “доверяй, но проверяй”, и улавливать любые случайные сбои.
Все вышеперечисленное встроено в функциональность IntelliJ, и JetBrains совершенствует свой процесс непрерывной интеграции с внедрением Qodana.
Рецепты Sensei загружаются в IntelliJ, чтобы действовать как собственные действия намерения и собираться в Профили проверки для поддержки пакетной проверки с помощью кода проверки и поддержки непрерывной интеграции, обеспечиваемой официальной функцией выполнения командной строки JetBrains.
Вы можете установить Sensei из IntelliJ, используя “Настройки \ Плагины” (Mac) или “Настройки \ Плагины” (Windows), затем просто найдите “безопасный код sensei”. Или установить из Торговая Площадка Jetbrains онлайн
Узнайте больше о Сэнсэе
Оригинал: “https://dev.to/securecodewarrior/running-intellij-inspections-from-continuous-integration-472a”