O plug -in Modernizer Maven detecta usos de APIs herdadas que as versões java modernas substituem. Essas APIs modernas geralmente são mais performáticas, mais seguras e idiomáticas do que os equivalentes do legado. Por exemplo, o modernizador pode detectar usos do Vector em vez de ArrayList , String.getBytes(String) em vez de String.getBytes(Charset) e Objects.equal de goiaba.equal em vez de Objects.equals java 7. A configuração padrão detecta mais de 200 APIs legadas, incluindo bibliotecas de terceiros como Apache Commons, Guava e Joda-Time.
Para executar o Modernizer, adicione o seguinte à estrofe <plugins> em seu pom.xml e invocar mvn modernizer:modernizer :
< plugin >
< groupId >org.gaul</ groupId >
< artifactId >modernizer-maven-plugin</ artifactId >
< version >2.7.0</ version >
< configuration >
< javaVersion >8</ javaVersion >
</ configuration >
</ plugin > A estrofe <configuration> pode conter vários elementos:
<javaVersion> Permite violações baseadas na versão Java Target, por exemplo, 8. Por exemplo, o modernizador detectará os usos do Vector como violações ao segmentar o Java 1.2, mas não ao segmentar o Java 1.1. Parâmetro necessário.<failOnViolations> Fase de falhas se o modernizador detectar alguma violações. Padrões para True.<includeTestClasses> Execute o Modernizer nas aulas de teste. Padrões para True.<violationsFile> Arquivo de violação especificado pelo usuário. Também desativa as verificações de violação padrão. Pode apontar para o ClassPath usando caminhos absolutos, por exemplo classpath:/your/file.xml .<violationsFiles> Violações especificadas pelo usuário. Os últimos arquivos substituem as violações dos primeiros, incluindo violationsFile e as violações padrão. Pode apontar para o ClassPath usando caminhos absolutos, por exemplo classpath:/your/file.xml .<exclusionsFile> Desativa violações especificadas pelo usuário. Este é um arquivo de texto com uma exclusão por linha no formato Javap: java/lang/String.getBytes:(Ljava/lang/String;)[B . Linhas e linhas vazias começando com # são ignoradas.<exclusions> Violações para desativar. Cada exclusão deve estar no formato Javap: java/lang/String.getBytes:(Ljava/lang/String;)[B .<exclusionPatterns> Padrões de violação a serem desativados, especificados usando elementos filhos <exclusionPattern> . Cada exclusão deve ser uma expressão regular que corresponda ao formato Javap: java/lang/.* de uma violação.<ignorePackages> Prefixos de pacote a serem ignorados, especificados usando elementos filhos <ignorePackage> . Especificar foo.bar Posteriormente ignora foo.bar.* , foo.bar.baz.* E assim por diante.<ignoreClassNamePatterns> nomes de classe qualificados <ignoreClassNamePattern> (Incl. Cada exclusão deve ser uma expressão regular que corresponda a um pacote e/ou classe; O pacote será / não. separado (formato do ASM).<ignoreGeneratedClasses> Classes anotadas com uma anotação cuja política de retenção é runtime ou class e cujo nome simples contém "gerado" será ignorado. (Nota: Javax.annotation.Generated e javax.annotation.processing.Generated possuem fonte de política de retenção (também conhecida como descartada pelo compilador).) Para executar o modernizador durante a fase de verificação da sua compilação, adicione o seguinte ao modernizador <plugin> estrofe em seu pom.xml:
< executions >
< execution >
< id >modernizer</ id >
< phase >verify</ phase >
< goals >
< goal >modernizer</ goal >
</ goals >
</ execution >
</ executions >Os sinalizadores da linha de comando podem substituir a configuração do modernizador e o ModernizerMermojo documenta tudo isso. As bandeiras mais usadas:
-Dmodernizer.failOnViolations - Fase de falhas Se violações detectadas, padronizando para true-Dmodernizer.skip - Execução do plug -in de ignorar, padrão para false O plug -in pode gerar violações do modernizador em um dos muitos formatos que podem ser configurados com a estrofe <configuration> usando <outputFormat> .
Os formatos atualmente suportados e suas respectivas opções de configuração estão descritas abaixo:
CONSOLE cada violação usando o MAVEN do MAVEN. Este é o formato padrão .<violationLogLevel> Especifique o nível de log do logger: error , warn , info ou debug . Padrão é error .CODE_CLIMATE Escreva as violações de acordo com as especificações do Code Climate. O GitLab usa esse formato para sua qualidade de código, como mostrado aqui.<outputFile> o caminho completo no arquivo para a saída. O padrão é ${project.build.directory}/code-quality.json<codeClimateSeverity> Severidade das violações do modernizador para codeclima: INFO , MINOR , MAJOR , CRITICAL ou BLOCKER . O padrão é MINOR . O código pode suprimir violações dentro de uma classe ou método por meio de uma anotação. Primeiro, adicione a seguinte dependência ao seu pom.xml :
< dependencies >
< dependency >
< groupId >org.gaul</ groupId >
< artifactId >modernizer-maven-annotations</ artifactId >
< version >2.7.0</ version >
</ dependency >
</ dependencies > Em seguida, adicione @SuppressModernizer ao elemento para ignorar:
import org . gaul . modernizer_maven_annotations . SuppressModernizer ;
public class Example {
@ SuppressModernizer
public static void method () { ... }
}javac -Xlint:deprecated detecta usos de interfaces com anotações @DeprecatedCopyright (c) 2014-2022 Andrew Gaul
Licenciado sob a licença Apache, versão 2.0