Modernizer Maven Plugin mendeteksi penggunaan API lama yang digantikan versi Java modern. API modern ini seringkali lebih banyak kinerja, lebih aman, dan idiomatik daripada yang setara dengan warisan. Misalnya, modernizer dapat mendeteksi penggunaan Vector alih -alih ArrayList , Objects.equals String.getBytes(String) alih -alih String.getBytes(Charset) , dan Objects.equal java. Konfigurasi default mendeteksi lebih dari 200 API lama, termasuk perpustakaan pihak ketiga seperti Apache Commons, Guava, dan Joda-Time.
Untuk menjalankan Modernizer, tambahkan yang berikut ini ke STANZA <plugins> di pom.xml Anda kemudian panggil mvn modernizer:modernizer :
< plugin >
< groupId >org.gaul</ groupId >
< artifactId >modernizer-maven-plugin</ artifactId >
< version >2.7.0</ version >
< configuration >
< javaVersion >8</ javaVersion >
</ configuration >
</ plugin > STANZA <configuration> dapat berisi beberapa elemen:
<javaVersion> memungkinkan pelanggaran berdasarkan versi target java, misalnya, 8. Misalnya, modernizer akan mendeteksi penggunaan Vector sebagai pelanggaran ketika menargetkan Java 1.2 tetapi tidak ketika menargetkan Java 1.1. Parameter yang diperlukan.<failOnViolations> fase gagal jika modernizer mendeteksi pelanggaran. Default ke true.<includeTestClasses> Jalankan modernizer di kelas tes. Default ke true.<violationsFile> File pelanggaran yang ditentukan pengguna. Juga menonaktifkan pemeriksaan pelanggaran standar. Dapat menunjuk ke classpath menggunakan jalur absolut, misalnya classpath:/your/file.xml .<violationsFiles> File pelanggaran yang ditentukan pengguna. File terakhir mengesampingkan pelanggaran dari yang sebelumnya, termasuk violationsFile dan pelanggaran default. Dapat menunjuk ke classpath menggunakan jalur absolut, misalnya classpath:/your/file.xml .<exclusionsFile> Menonaktifkan pelanggaran yang ditentukan pengguna. Ini adalah file teks dengan satu pengecualian per baris dalam format javap: java/lang/String.getBytes:(Ljava/lang/String;)[B . Garis dan garis kosong yang dimulai dengan # diabaikan.<exclusions> pelanggaran untuk menonaktifkan. Setiap pengecualian harus dalam format JavaP: java/lang/String.getBytes:(Ljava/lang/String;)[B .<exclusionPatterns> Pola pelanggaran untuk dinonaktifkan, ditentukan menggunakan <exclusionPattern> elemen anak. Setiap pengecualian harus menjadi ekspresi reguler yang cocok dengan format JAVAP: java/lang/.* dari pelanggaran.<ignorePackages> Paket awalan untuk diabaikan, ditentukan menggunakan elemen <ignorePackage> anak. Menentukan foo.bar kemudian mengabaikan foo.bar.* , foo.bar.baz.* Dan sebagainya.<ignoreClassNamePatterns> Nama kelas penuh yang memenuhi syarat (termasuk paket) untuk diabaikan, ditentukan menggunakan <ignoreClassNamePattern> elemen anak. Setiap pengecualian harus menjadi ekspresi reguler yang cocok dengan paket dan/atau kelas; Paket akan / tidak. terpisah (format ASM).<ignoreGeneratedClasses> Kelas yang dijelaskan dengan anotasi yang kebijakan retensi yang runtime atau class dan yang namanya sederhana berisi "dihasilkan" akan diabaikan. (Catatan: baik javax.annotation.generated dan javax.annotation.processing.Generated memiliki sumber kebijakan retensi (alias dibuang oleh kompiler).) Untuk menjalankan modernizer selama fase verifikasi build Anda, tambahkan yang berikut ini ke modernizer <plugin> bait di pom.xml Anda:
< executions >
< execution >
< id >modernizer</ id >
< phase >verify</ phase >
< goals >
< goal >modernizer</ goal >
</ goals >
</ execution >
</ executions >Bendera baris perintah dapat mengganti konfigurasi modernizer dan modernermojo mendokumentasikan semua ini. Bendera yang paling umum digunakan:
-Dmodernizer.failOnViolations - fase gagal jika pelanggaran terdeteksi, default ke true-Dmodernizer.skip - Lewati eksekusi plugin, default ke false Plugin dapat mengeluarkan pelanggaran modernizer dalam salah satu dari banyak format yang dapat dikonfigurasi dengan STANZA <configuration> menggunakan <outputFormat> .
Format yang saat ini didukung dan opsi konfigurasi masing -masing diuraikan di bawah ini:
CONSOLE setiap pelanggaran menggunakan logger Maven. Ini adalah format default .<violationLogLevel> Tentukan level log logger: error , warn , info atau debug . Default adalah error .CODE_CLIMATE menulis pelanggaran sesuai dengan spek kode iklim. Gitlab menggunakan format ini untuk kualitas kodenya seperti yang ditunjukkan di sini.<outputFile> Jalur lengkap file yang akan di -output ke. Default adalah ${project.build.directory}/code-quality.json<codeClimateSeverity> Tingkat keparahan pelanggaran modernizer untuk Codeclimate: INFO , MINOR , MAJOR , CRITICAL atau BLOCKER . Defaultnya MINOR . Kode dapat menekan pelanggaran dalam kelas atau metode melalui anotasi. Pertama tambahkan ketergantungan berikut ke pom.xml Anda:
< dependencies >
< dependency >
< groupId >org.gaul</ groupId >
< artifactId >modernizer-maven-annotations</ artifactId >
< version >2.7.0</ version >
</ dependency >
</ dependencies > Kemudian tambahkan @SuppressModernizer ke elemen untuk diabaikan:
import org . gaul . modernizer_maven_annotations . SuppressModernizer ;
public class Example {
@ SuppressModernizer
public static void method () { ... }
}javac -Xlint:deprecated mendeteksi penggunaan antarmuka dengan anotasi @DeprecatedHak Cipta (C) 2014-2022 Andrew Gaul
Lisensi di bawah lisensi Apache, Versi 2.0