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