
Простая настройка инструментов статического анализа для проектов Android и Java.
⚠️ Форк этого проекта поддерживается по адресу https://github.com/GradleUp/static-analysis-plugin/ Пожалуйста, выполните миграцию, используя идентификатор плагина
com.gradleup.static-analysis.
Плагин Gradle для простого применения одинаковой конфигурации инструментов статического анализа в различных проектах Android, Java или Kotlin.
Поддерживает Task Configuration Avoidance, поэтому при использовании этого плагина вы не получаете накладных расходов на скорость сборки!
Gradle поддерживает множество популярных инструментов статического анализа (Checkstyle, PMD, FindBugs и т.д.) с помощью набора встроенных плагинов. Использование этих плагинов в модуле Android потребует дополнительной настройки для компенсации различий между моделью, принятой в плагине Android, и моделью Java.
Плагин gradle-static-analysis-plugin нацелен на предоставление:
Плагин поддерживает различные инструменты статического анализа для проектов на Java, Kotlin и Android:
CheckstylePMDFindBugs [УСТАРЕЛО] [Удалено в Gradle 6.0]SpotBugsDetektAndroid LintKtLintОбратите внимание, что доступность инструментов зависит от проекта, к которому применяется плагин. Для получения дополнительных сведений обратитесь к странице supported tools.
По всем рассматриваемым инструментам обращайтесь к issues.
Проекты Android используют модель Gradle, несовместимую с моделью Java, поддерживаемой встроенными плагинами инструментов статического анализа.
Применение gradle-static-analysis-plugin к вашему проекту Android гарантирует, что все необходимые задачи будут созданы и правильно настроены без каких-либо дополнительных хлопот.
Примените плагин из jCenter как зависимость classpath
buildscript {
repositories {
jcenter()
}
dependencies {
classpath 'com.novoda:gradle-static-analysis-plugin:1.2'
}
}
apply plugin: 'com.novoda.static-analysis'
или из Gradle Plugins Repository:
plugins {
id 'com.novoda.static-analysis' version '1.2'
}
Типичная конфигурация плагина выглядит так:
staticAnalysis {
penalty {
maxErrors = 0
maxWarnings = 0
}
checkstyle { }
pmd { }
findbugs { }
spotbugs { }
detekt { }
lintOptions { }
}
Это включит все инструменты с их настройками по умолчанию и создаст задачу evaluateViolations. При запуске задачи ./gradlew evaluateViolations будут выполнены все настроенные инструменты, а отчеты будут выведены в консоль. Для более продвинутых конфигураций обратитесь к страницам advanced usage и supported tools.
Доступны два образца проектов Android: один состоит из обычного приложения — доступен здесь, а другой включает многомодульную настройку, доступную здесь. Оба образца демонстрируют конфигурацию с использованием Checkstyle, FindBugs, SpotBugs, PMD, Lint, Ktlint и Detekt.
Сборочные снимки (snapshot builds) из ветки develop автоматически развертываются в репозитории, который не синхронизирован с JCenter.
Чтобы использовать сборочный снимок, добавьте дополнительный репозиторий Maven следующим образом:
repositories {
maven {
url 'https://dl.bintray.com/novoda-oss/snapshots/'
}
}
Последнюю версию снимка можно найти по этой ссылке.
Этот проект регулярно используется во многих проектах Novoda и в других внешних проектах без известных критических проблем.
Будущие улучшения и интеграции новых инструментов можно найти в трекере задач репозитория.