Le plugin Maven Modernizer détecte les utilisations des API héritées que les versions Java modernes remplacent. Ces API modernes sont souvent plus performantes, plus sûres et idiomatiques que les équivalents hérités. Par exemple, le modernisateur peut détecter les utilisations de Vector au lieu de ArrayList , String.getBytes(String) au lieu de String.getBytes(Charset) et de goyava Objects.equal au lieu de Java 7 Objects.equals . La configuration par défaut détecte plus de 200 API héritées, y compris des bibliothèques tierces comme Apache Commons, Guava et Joda-Time.
Pour exécuter le modernisateur, ajoutez ce qui suit à la strophe <plugins> dans votre pom.xml puis invoquez 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 strophe <configuration> peut contenir plusieurs éléments:
<javaVersion> permet des violations basées sur la version Java cible, par exemple, 8. Par exemple, le modernisateur détectera les utilisations du Vector comme violations lors du ciblage de Java 1.2 mais pas lors du ciblage de Java 1.1. Paramètre requis.<failOnViolations> Échec de la phase si le modernisateur détecte des violations. Par défaut est vrai.<includeTestClasses> Exécutez le modernisateur sur les classes de test. Par défaut est vrai.<violationsFile> Fichier de violation spécifié par l'utilisateur. Désactive également les contrôles de violation standard. Peut pointer vers ClassPath en utilisant des chemins absolus, par exemple classpath:/your/file.xml .<violationsFiles> Fichier de violations spécifiées par l'utilisateur. Ces derniers dossiers remplacent les violations des premiers, y compris violationsFile et les violations par défaut. Peut pointer vers ClassPath en utilisant des chemins absolus, par exemple classpath:/your/file.xml .<exclusionsFile> désactive les violations spécifiées par l'utilisateur. Il s'agit d'un fichier texte avec une exclusion par ligne au format Javap: java/lang/String.getBytes:(Ljava/lang/String;)[B . Les lignes et les lignes vides commençant par # sont ignorées.<exclusions> violations à désactiver. Chaque exclusion doit être au format Javap: java/lang/String.getBytes:(Ljava/lang/String;)[B .<exclusionPatterns> Modèles de violation à désactiver, spécifiés à l'aide d'éléments enfants <exclusionPattern> . Chaque exclusion doit être une expression régulière qui correspond au format Javap: java/lang/.* d'une violation.<ignorePackages> PRODE-PACKET PRÉFIXES À IGNORER, spécifiés à l'aide d'éléments enfants <ignorePackage> . Spécifier foo.bar ignore par la suite foo.bar.* , foo.bar.baz.* Et ainsi de suite.<ignoreClassNamePatterns> Noms de classe qualifiés complets (package incl.) à ignorer, spécifiés à l'aide de <ignoreClassNamePattern> Éléments enfants. Chaque exclusion doit être une expression régulière qui correspond à un package et / ou à une classe; Le package sera / non. séparé (format d'ASM).<ignoreGeneratedClasses> Classes annotées avec une annotation dont la politique de rétention est runtime ou class et dont le nom simple contienne "généré" sera ignoré. (Remarque: à la fois javax.annotation.generated et javax.annotation.processing.generated a une source de politique de rétention (aka rejetée par compilateur).) Pour exécuter le modernisateur pendant la phase de vérification de votre construction, ajoutez ce qui suit à la strophe modernisateur <plugin> dans votre pom.xml:
< executions >
< execution >
< id >modernizer</ id >
< phase >verify</ phase >
< goals >
< goal >modernizer</ goal >
</ goals >
</ execution >
</ executions >Les drapeaux de ligne de commande peuvent remplacer la configuration du modernisateur et Modernizermojo documente tout cela. Les drapeaux les plus couramment utilisés:
-Dmodernizer.failOnViolations - Échec de la phase Si les violations détectées, par défaut-Dmodernizer.skip - Sauter l'exécution du plugin, par défaut Le plugin peut proposer des violations du modernisateur dans l'un des nombreux formats qui peuvent être configurés avec la strophe <configuration> à l'aide de <outputFormat> .
Les formats actuellement pris en charge et leurs options de configuration respectives sont décrites ci-dessous:
CONSOLE répertorie chaque violation à l'aide de l'enregistrement de Maven. Il s'agit du format par défaut .<violationLogLevel> Spécifiez le niveau de journal de l'enregistreur: error , warn , info ou debug . La valeur par défaut est error .CODE_CLIMATE écrivez les violations selon les spécifications de Code Climate. Gitlab utilise ce format pour sa qualité de code comme indiqué ici.<outputFile> Le chemin complet du fichier vers le sortie. La valeur par défaut est ${project.build.directory}/code-quality.json<codeClimateSeverity> Gravité des violations des modernisateurs pour le codeclimat: INFO , MINOR , MAJOR , CRITICAL ou BLOCKER . La valeur par défaut est MINOR . Le code peut supprimer les violations au sein d'une classe ou d'une méthode via une annotation. Ajoutez d'abord la dépendance suivante à votre pom.xml :
< dependencies >
< dependency >
< groupId >org.gaul</ groupId >
< artifactId >modernizer-maven-annotations</ artifactId >
< version >2.7.0</ version >
</ dependency >
</ dependencies > Ajoutez ensuite @SuppressModernizer à l'élément pour ignorer:
import org . gaul . modernizer_maven_annotations . SuppressModernizer ;
public class Example {
@ SuppressModernizer
public static void method () { ... }
}javac -Xlint:deprecated Détecte les utilisations des interfaces avec les annotations @deprecatedCopyright (C) 2014-2022 Andrew Gaul
Licencié sous la licence Apache, version 2.0