Modernizer Maven Plugin erkennt die Verwendung von Legacy -APIs, die moderne Java -Versionen ersetzen. Diese modernen APIs sind oft leistungsfähiger, sicherer und idiomatischer als die älteren Äquivalente. Beispielsweise kann Modernizer Objects.equals Verwendung von Vector anstelle von ArrayList , String.getBytes(String) anstelle von String.getBytes(Charset) und Guava Objects.equal erkennen. Die Standardkonfiguration erkennt über 200 Legacy-APIs, darunter Bibliotheken von Drittanbietern wie Apache Commons, Guava und Joda-Zeit.
Um Modernizer auszuführen, fügen Sie Folgendes zu der <plugins> Stanza in Ihrem pom.xml hinzu und rufen Sie mvn modernizer:modernizer auf:
< plugin >
< groupId >org.gaul</ groupId >
< artifactId >modernizer-maven-plugin</ artifactId >
< version >2.7.0</ version >
< configuration >
< javaVersion >8</ javaVersion >
</ configuration >
</ plugin > Die <configuration> Strophe kann mehrere Elemente enthalten:
<javaVersion> Ermöglicht Verstöße, die auf der Ziel -Java -Version basieren, z. B. 8. Zum Beispiel wird Modernizer die Verwendung von Vector als Verstöße bei der Ausrichtung von Java 1.2 erkennen, jedoch nicht, wenn sie auf Java 1.1 abzielen. Erforderlicher Parameter.<failOnViolations> fehlgeschlagene Phase Wenn Modernizer Verstöße erkennt. Standardmäßig true.<includeTestClasses> Modernizer in Testkursen ausführen. Standardmäßig true.<violationsFile> Benutzerspezifizierte Verstoßdatei. Deaktiviert auch Standardverletzungsüberprüfungen. Kann auf ClassPath mit Absolute Pfaden verweisen, z. B. classpath:/your/file.xml .<violationsFiles> Benutzerdefinierte Verstößendatei. Die letzteren Dateien überschreiben Verstöße gegen die ersteren, einschließlich violationsFile und Standardverletzungen. Kann auf ClassPath mit Absolute Pfaden verweisen, z. B. classpath:/your/file.xml .<exclusionsFile> deaktiviert benutzerdefinierte Verstöße. Dies ist eine Textdatei mit einem Ausschluss pro Zeile im Javap -Format: java/lang/String.getBytes:(Ljava/lang/String;)[B . Leere Linien und Linien, die mit # beginnen, werden ignoriert.<exclusions> Verstöße gegen die Deaktivierung. Jeder Ausschluss sollte im Javap -Format sein: java/lang/String.getBytes:(Ljava/lang/String;)[B .<exclusionPatterns> zu deaktivierte Verstößenmuster, angegeben unter Verwendung von <exclusionPattern> Kinderelementen. Jeder Ausschluss sollte ein regulärer Ausdruck sein, der mit dem Javap -Format übereinstimmt: java/lang/.* einer Verletzung.<ignorePackages> Paketpräfixe zum Ignorieren, angegeben mit <ignorePackage> untergeordneten Elementen. Angeben foo.bar ignoriert anschließend foo.bar.* , foo.bar.baz.* Usw.<ignoreClassNamePatterns> Voll qualifizierte Klassennamen (inkl. Paket) zu ignorieren, angegeben mit <ignoreClassNamePattern> Kinderelemente. Jeder Ausschluss sollte ein regulärer Ausdruck sein, der einem Paket und/oder einer Klasse entspricht. Das Paket wird / nicht sein. getrennt (ASM -Format).<ignoreGeneratedClasses> mit einer Annotation kommentierten Klassen, deren Aufbewahrungsrichtlinie runtime oder class ist und deren einfacher Name "generiert" ignoriert wird. (Hinweis: Sowohl javax.annotation Um Modernizer während der Überprüfung Ihrer Build -Phase zu betreiben, fügen Sie Folgendes dem Modernizer <plugin> Stanza in Ihrem pom.xml hinzu:
< executions >
< execution >
< id >modernizer</ id >
< phase >verify</ phase >
< goals >
< goal >modernizer</ goal >
</ goals >
</ execution >
</ executions >Befehlszeilen-Flags können die Modernizer-Konfiguration überschreiben und alle diese Dokumente von ModernizerMojo überschreiben. Die am häufigsten verwendeten Flaggen:
-Dmodernizer.failOnViolations - fehlgeschlagene Phase, wenn Verstöße festgestellt werden, standardmäßig true-Dmodernizer.skip - Überspringen Sie die Ausführung von Plugin, standardmäßig zu False Das Plugin kann Modernisiererverletzungen in einem von vielen Formaten ausgeben, die mit der <configuration> Stanza mit <outputFormat> konfiguriert werden können.
Die derzeit unterstützten Formate und deren jeweiligen Konfigurationsoptionen sind nachstehend beschrieben:
CONSOLE jeden Verstoß mit dem Logger von Mavens Logger. Dies ist das Standardformat .<violationLogLevel> Geben Sie die Protokollebene des Protokolls an: error , warn , info oder debug . Standard ist error .CODE_CLIMATE schreiben die Verstöße nach der Spezifikation des Code Climate. GitLab verwendet dieses Format für seine Codequalität, wie hier gezeigt.<outputFile> Der vollständige Pfad Die Datei zum Ausgabe an. Standard ist ${project.build.directory}/code-quality.json<codeClimateSeverity> Schweregrad der Verstöße gegen Modernisierer für CodeClimate: INFO , MINOR , MAJOR , CRITICAL oder BLOCKER . Standard ist MINOR . Code kann Verstöße innerhalb einer Klasse oder Methode über eine Annotation unterdrücken. Fügen Sie zunächst die folgende Abhängigkeit zu Ihrem pom.xml hinzu:
< dependencies >
< dependency >
< groupId >org.gaul</ groupId >
< artifactId >modernizer-maven-annotations</ artifactId >
< version >2.7.0</ version >
</ dependency >
</ dependencies > Fügen Sie dann @SuppressModernizer zum Element hinzu, um zu ignorieren:
import org . gaul . modernizer_maven_annotations . SuppressModernizer ;
public class Example {
@ SuppressModernizer
public static void method () { ... }
}javac -Xlint:deprecated Erkennung von Schnittstellen mit @deprecated AnnotationsCopyright (C) 2014-2022 Andrew Gaul
Lizenziert unter der Apache -Lizenz, Version 2.0