Плагин Modernizer Maven обнаруживает использование устаревших API, которые заменяют современные версии Java. Эти современные API часто более эффективные, безопаснее и идиоматические, чем унаследованные эквиваленты. Например, модернизатор может обнаружить использование Vector вместо ArrayList , String.getBytes(String) вместо String.getBytes(Charset) и guava Objects.equal . Equal вместо java 7 Objects.equals . Конфигурация по умолчанию обнаруживает более 200 API-интерфейсов Legacy, включая сторонние библиотеки, такие как Apache Commons, Guava и Joda-Time.
Чтобы запустить модернизатор, добавьте следующее в <plugins> Stanza в вашем pom.xml, затем вызок mvn modernizer:modernizer :
< plugin >
< groupId >org.gaul</ groupId >
< artifactId >modernizer-maven-plugin</ artifactId >
< version >2.7.0</ version >
< configuration >
< javaVersion >8</ javaVersion >
</ configuration >
</ plugin > <configuration> Stanza может содержать несколько элементов:
<javaVersion> включает нарушения Vector основанные на целевой версии Java, например, 8. Требуемый параметр.<failOnViolations> Фаза неудачи, если модернизатор обнаруживает какие -либо нарушения. По умолчанию к истинному.<includeTestClasses> Запустите модернизатор на тестовых классах. По умолчанию к истинному.<violationsFile> Нарушения File> Файл нарушений, указанный пользователем. Также отключает стандартные проверки нарушения. Может указывать на ClassPath, используя абсолютные пути, например, classpath:/your/file.xml .<violationsFiles> Файл нарушений, определенных пользователем. Последние файлы переворачивают нарушения от первых, включая violationsFile и нарушения по умолчанию. Может указывать на ClassPath, используя абсолютные пути, например, classpath:/your/file.xml .<exclusionsFile> отключает указанные пользователем нарушения. Это текстовый файл с одним исключением на строку в формате Javap: java/lang/String.getBytes:(Ljava/lang/String;)[B . Пустые линии и линии, начиная с # игнорируются.<exclusions> нарушения отключения. Каждое исключение должно быть в формате javap: java/lang/String.getBytes:(Ljava/lang/String;)[B .<exclusionPatterns> Закономерности нарушения для отключения, указанные с использованием <exclusionPattern> детских элементов. Каждое исключение должно быть регулярным выражением, которое соответствует формату Javap: java/lang/.* нарушения.<ignorePackages> префиксы пакета, чтобы игнорировать, указанные с использованием <ignorePackage> детских элементов. Указание foo.bar впоследствии игнорирует foo.bar.* , foo.bar.baz.* И так далее.<ignoreClassNamePatterns> Полные квалифицированные имена классов (вкл. Пакет), чтобы игнорировать, указанные с использованием <ignoreClassNamePattern> детских элементов. Каждое исключение должно быть регулярным выражением, которое соответствует пакету и/или классу; Пакет будет / нет. разделен (формат ASM).<ignoreGeneratedClasses> классы, аннотированные с аннотацией, политика удержания которого - runtime или class и чье простое имя, содержащее «генерируемое», будет проигнорировано. (Примечание: как javax.annotation.generated, так и javax.annotation.processing.generated Источник политики удержания (он же отброшен компилятором).).) Чтобы запустить модернизатор во время фазы проверки вашей сборки, добавьте следующее в модернизатор <plugin> stanza в pom.xml:
< executions >
< execution >
< id >modernizer</ id >
< phase >verify</ phase >
< goals >
< goal >modernizer</ goal >
</ goals >
</ execution >
</ executions >Флаги командной строки могут переопределять конфигурацию модернизатора и все это документируют Modernizermojo. Наиболее часто используемые флаги:
-Dmodernizer.failOnViolations - Фаза провал, если обнаружены нарушения, по умолчанию к истинному-Dmodernizer.skip - Пропустить выполнение плагинов, по умолчанию Плагин может выводить нарушения модернизатора в одном из многих форматов, которые можно настроить с помощью <configuration> stanza с использованием <outputFormat> .
В настоящее время поддерживаемые в настоящее время форматы и их соответствующие параметры конфигурации изложены ниже:
CONSOLE каждого нарушения с использованием регистратора Maven. Это формат по умолчанию .<violationLogLevel> Укажите уровень журнала журнала: error , warn , info или debug . По умолчанию error .CODE_CLIMATE Напишите нарушения в соответствии с спецификацией Code Climate. Gitlab использует этот формат для своего качества кода, как показано здесь.<outputFile> Полный путь к выводу файла. По умолчанию ${project.build.directory}/code-quality.json<codeClimateSeverity> Серьезность нарушений модернизатора для Codeclimate: INFO , MINOR , MAJOR , CRITICAL или BLOCKER . По умолчанию MINOR . Код может подавлять нарушения в классе или метод посредством аннотации. Сначала добавьте следующую зависимость в свой pom.xml :
< dependencies >
< dependency >
< groupId >org.gaul</ groupId >
< artifactId >modernizer-maven-annotations</ artifactId >
< version >2.7.0</ version >
</ dependency >
</ dependencies > Затем добавьте @SuppressModernizer в элемент, чтобы игнорировать:
import org . gaul . modernizer_maven_annotations . SuppressModernizer ;
public class Example {
@ SuppressModernizer
public static void method () { ... }
}javac -Xlint:deprecated обнаружение использования интерфейсов с @deprecated аннотациямиCopyright (C) 2014-2022 Эндрю Галль
Лицензирована по лицензии Apache, версия 2.0