modernizer maven plugin
ven Plugin 2.9.0
Modernizer Maven插件检测到现代Java版本取代的传统API的用途。这些现代API通常比遗产等效物更具性能,更安全和惯用性。例如,Modernizer可以检测Vector而不是ArrayList的用途, String.getBytes(String)而不是String.getBytes(Charset)和guava Objects.equal equals Objects.equals 。默认配置可检测到200多个遗留API,包括Apache Commons,Guava和Joda Time等第三方库。
要运行Modernizer,请在pom.xml中的<plugins> stanza中添加以下内容,然后调用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>基于目标Java版本Vector违规行为,例如8。必需的参数。<failOnViolations>失败阶段,如果现代化器检测到任何违规行为。默认为true。<includeTestClasses>在测试类上运行现代化器。默认为true。<violationsFile>用户指定的违规文件。还可以禁用标准违规检查。可以使用绝对路径(例如classpath:/your/file.xml )指向classPath。<violationsFiles>用户指定的违规文件。后者文件覆盖了以前的违规行为,包括violationsFile和违约行为。可以使用绝对路径(例如classpath:/your/file.xml )指向classPath。<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.Annotation.processing.Generated具有保留策略来源(又称编译器丢弃)。)。要在构建的验证阶段运行现代化器,请在pom.xml中的现代化器<plugin> stanza中添加以下内容:
< executions >
< execution >
< id >modernizer</ id >
< phase >verify</ phase >
< goals >
< goal >modernizer</ goal >
</ goals >
</ execution >
</ executions >命令行标志可以覆盖现代化器的配置,而现代化的标志所有这些都可以覆盖所有这些。最常用的标志:
-Dmodernizer.failOnViolations失败阶段,如果违规被检测到,默认为true-Dmodernizer.skip -Skip插件执行,默认为false该插件可以以多种格式之一输出现代化器违规,可以使用<outputFormat>使用<configuration> stanza配置。
当前支持的格式及其各自的配置选项如下概述:
CONSOLE使用Maven的记录器列出每个违规行为。这是默认格式。<violationLogLevel>指定记录器的日志级别: error , warn , info或debug 。默认值是error 。CODE_CLIMATE根据代码气候规范编写违规行为。 GitLab使用此格式的代码质量,如下所示。<outputFile>文件输出到达的完整路径。默认值为${project.build.directory}/code-quality.json<codeClimateSeverity>现代化器违反编码气候的严重性: 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注释的接口版权(C)2014-2022 Andrew Gaul
根据Apache许可证获得许可,版本2.0