El complemento Modernizer Maven detecta los usos de las API heredadas que las versiones modernas de Java reemplazan. Estas API modernas a menudo son más performantes, más seguras e idiomáticas que los equivalentes heredados. Por ejemplo, Modernizer puede detectar los usos de Vector en lugar de ArrayList , String.getBytes(String) en lugar de String.getBytes(Charset) y Guava Objects.equal . Equal en lugar de Java 7 Objects.equals . La configuración predeterminada detecta más de 200 API heredadas, incluidas bibliotecas de terceros como Apache Commons, Guava y Joda Time.
Para ejecutar Modernizer, agregue lo siguiente al <plugins> estrofa en su pom.xml y luego invoque mvn modernizer:modernizer :
< plugin >
< groupId >org.gaul</ groupId >
< artifactId >modernizer-maven-plugin</ artifactId >
< version >2.7.0</ version >
< configuration >
< javaVersion >8</ javaVersion >
</ configuration >
</ plugin > La estrofa <configuration> puede contener varios elementos:
<javaVersion> permite violaciones basadas en la versión de Java objetivo, por ejemplo, 8. Por ejemplo, Modernizer detectará los usos de Vector como violaciones al atacar a Java 1.2 pero no cuando se dirige a Java 1.1. Parámetro requerido.<failOnViolations> fase de falla si el modernizador detecta alguna violación. El valor predeterminado es verdadero.<includeTestClasses> Ejecutar modernizador en las clases de prueba. El valor predeterminado es verdadero.<violationsFile> archivo de violación especificado por el usuario. También deshabilita los controles de violación estándar. Puede apuntar a classpath usando rutas absolutas, por ejemplo classpath:/your/file.xml .<violationsFiles> archivo de violaciones especificadas por el usuario. Los últimos archivos anulan las violaciones de las anteriores, incluidas violationsFile y las violaciones predeterminadas. Puede apuntar a classpath usando rutas absolutas, por ejemplo classpath:/your/file.xml .<exclusionsFile> Desactiva las violaciones especificadas por el usuario. Este es un archivo de texto con una exclusión por línea en el formato Javap: java/lang/String.getBytes:(Ljava/lang/String;)[B . Se ignoran las líneas y líneas vacías que comienzan con # .<exclusions> violaciones para deshabilitar. Cada exclusión debe estar en el formato Javap: java/lang/String.getBytes:(Ljava/lang/String;)[B .<exclusionPatterns> Patrones de violación para deshabilitar, especificados utilizando <exclusionPattern> Elementos infantiles. Cada exclusión debe ser una expresión regular que coincida con el formato Javap: java/lang/.* de una violación.<ignorePackages> Los prefijos del paquete para ignorar, especificados utilizando <ignorePackage> elementos infantiles. Especificar foo.bar posteriormente ignora foo.bar.* , foo.bar.baz.* Y así sucesivamente.<ignoreClassNamePatterns> Nombres de clases calificados completos (paquete incl.) Para ignorar, especificados utilizando <ignoreClassNamePattern> elementos infantiles. Cada exclusión debe ser una expresión regular que coincida con un paquete y/o clase; El paquete será / no. separado (formato de ASM).<ignoreGeneratedClasses> clases anotadas con una anotación cuya política de retención es runtime o class y cuyo nombre simple contiene "generado" será ignorado. (Nota: tanto javax.annotation.generated como javax.annotation.processing.generated tienen una fuente de política de retención (también conocida como descartada por el compilador). Para ejecutar Modernizer durante la fase de verificación de su construcción, agregue lo siguiente al modernizador <plugin> estrofa en su pom.xml:
< executions >
< execution >
< id >modernizer</ id >
< phase >verify</ phase >
< goals >
< goal >modernizer</ goal >
</ goals >
</ execution >
</ executions >Los indicadores de línea de comandos pueden anular la configuración de Modernizer y los documentos de ModernizerMojo todo esto. Las banderas más utilizadas:
-Dmodernizer.failOnViolations - fase de falla Si las violaciones detectadas, el valor predeterminado es verdadero-Dmodernizer.skip - Skip Ejecución del complemento, predeterminado a False El complemento puede generar violaciones de modernizador en uno de los muchos formatos que se pueden configurar con la estrofa <configuration> utilizando <outputFormat> .
Los formatos compatibles actualmente y sus respectivas opciones de configuración se describen a continuación:
CONSOLE Cada violación utilizando el registrador de Maven. Este es el formato predeterminado .<violationLogLevel> Especifique el nivel de registro del registrador: error , warn , info o debug . El valor predeterminado es error .CODE_CLIMATE Escriba las violaciones de acuerdo con la especificación del clima del código. GitLab utiliza este formato para su calidad de código como se muestra aquí.<outputFile> La ruta completa a la que salga. El valor predeterminado es ${project.build.directory}/code-quality.json<codeClimateSeverity> Severidad de las violaciones modernizador para CodeClimate: INFO , MINOR , MAJOR , CRITICAL o BLOCKER . El valor predeterminado es MINOR . El código puede suprimir las violaciones dentro de una clase o método a través de una anotación. Primero agregue la siguiente dependencia a su pom.xml :
< dependencies >
< dependency >
< groupId >org.gaul</ groupId >
< artifactId >modernizer-maven-annotations</ artifactId >
< version >2.7.0</ version >
</ dependency >
</ dependencies > Luego agregue @SuppressModernizer al elemento para ignorar:
import org . gaul . modernizer_maven_annotations . SuppressModernizer ;
public class Example {
@ SuppressModernizer
public static void method () { ... }
}javac -Xlint:deprecated Detects usos de las interfaces con anotaciones @DeprecisedCopyright (c) 2014-2022 Andrew Gaul
Licenciado bajo la licencia Apache, versión 2.0