المكوّن الإضافي Modernizer Maven يكتشف استخدامات واجهات برمجة التطبيقات القديمة التي تحل محل إصدارات Java الحديثة. غالبًا ما تكون واجهات برمجة التطبيقات الحديثة هذه أكثر أداءً وأكثر أمانًا وذاتية من المعادلات القديمة. Objects.equals سبيل المثال ، يمكن لـ Modernizer اكتشاف استخدامات Vector بدلاً من ArrayList و String.getBytes(String) بدلاً من Objects.equal String.getBytes(Charset) و guava. يكتشف التكوين الافتراضي أكثر من 200 واجهات برمجة التطبيقات القديمة ، بما في ذلك مكتبات الطرف الثالث مثل Apache Commons و Guava و Joda-Time.
لتشغيل Modernizer ، أضف ما يلي إلى <plugins> stanza في pom.xml الخاص بك ثم استدعاء 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> على وجود عدة عناصر:
<javaVersion> يتيح الانتهاكات بناءً على إصدار Java المستهدف ، على سبيل المثال ، 8. على سبيل المثال ، ستكتشف Modernizer استخدامات Vector كخروقات عند استهداف Java 1.2 ولكن ليس عند استهداف Java 1.1. المعلمة المطلوبة.<failOnViolations> فشل المرحلة إذا اكتشف Modernizer أي انتهاكات. الافتراضات إلى صواب.<includeTestClasses> تشغيل Modernizer على فصول الاختبار. الافتراضات إلى صواب.<violationsFile> ملف انتهاك محدد للمستخدم. كما يعطل اختبارات الانتهاك القياسية. يمكن أن تشير إلى classpath باستخدام المسارات المطلقة ، eg classpath:/your/file.xml .<violationsFiles> ملف الانتهاكات المحددة للمستخدم. تتجاوز الملفات الأخيرة الانتهاكات من السابق ، بما في ذلك violationsFile والانتهاكات الافتراضية. يمكن أن تشير إلى classpath باستخدام المسارات المطلقة ، eg classpath:/your/file.xml .<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.genated و javax.annotation.processing. لتشغيل Modernizer أثناء مرحلة التحقق من البناء ، أضف ما يلي إلى Modernizer <plugin> stanza في pom.xml الخاص بك:
< executions >
< execution >
< id >modernizer</ id >
< phase >verify</ phase >
< goals >
< goal >modernizer</ goal >
</ goals >
</ execution >
</ executions >يمكن لعلامات سطر الأوامر تجاوز تكوين Modernizer وتوثيق ModernizerMojo كل هذه. الأعلام الأكثر استخدامًا:
-Dmodernizer.failOnViolations - مرحلة الفشل إذا تم اكتشاف انتهاكات ، تتخلف عن السداد إلى True-Dmodernizer.skip - تخطي تنفيذ البرنامج المساعد ، الإعدادات الافتراضية إلى خطأ يمكن للمكون الإضافي إخراج انتهاكات Modernizer في واحدة من العديد من التنسيقات التي يمكن تكوينها باستخدام <configuration> stanza باستخدام <outputFormat> .
فيما يلي التنسيقات المدعومة حاليًا وخيارات التكوين الخاصة بها:
CONSOLE كل انتهاك باستخدام مسجل Maven. هذا هو التنسيق الافتراضي .<violationLogLevel> حدد مستوى السجل للمسجل: error أو warn أو info أو debug . الافتراضي هو error .CODE_CLIMATE اكتب الانتهاكات وفقًا لمواصفات Code Climate. يستخدم GitLab هذا التنسيق لجودة الكود كما هو موضح هنا.<outputFile> المسار الكامل للملف للإخراج إلى. الافتراضي هو ${project.build.directory}/code-quality.json<codeClimateSeverity> شدة انتهاكات Modernizer من أجل الترميز: 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حقوق الطبع والنشر (ج) 2014-2022 أندرو جول
مرخصة بموجب ترخيص Apache ، الإصدار 2.0