على مر السنين ، قام فريق PVS-Studio بتطوير محلل ثابت يحمل نفس الاسم. في الوقت الحالي ، يعد المحلل حلاً برمجيًا معقدًا ويوفر القدرة على تحليل لغات البرمجة مثل C و C ++ و C # و Java على أنظمة Windows و Linux و macOS. في الآونة الأخيرة ، تمت إضافة Java إلى عدد من لغات البرمجة المدعومة. إذا كان محلل PVS-Studio قد أسس بالفعل بين مطوري C ++ و C # لسنوات عديدة ، فإن PVS-Studio لا يزال مبتدئًا لجمهور جافا. كثيرون لم يسمعوا حتى بالمحلل ، وأولئك الذين سمعوه ليسوا على دراية بجميع قدراته. لذلك ، أود في هذه المقالة تقديمك إلى PVS-Studio Java ، والتحدث عن طرق الإطلاق وقدراتها.
معلومات عامة
يتكون محلل الشفرة الثابتة في PVS-Studio Java من جزأين رئيسيين: النواة التي تجري التحليل والمكونات الإضافية للتكامل في أنظمة التجميع (Gradle و Maven) و IDE (IntelliJ IDEA).
تتلقى الإضافات بنية المشروع (مجموعات من الملفات المصدر و classpath) ، وبعد ذلك يقومون بنقل هذه المعلومات إلى kernel. بالإضافة إلى ذلك ، تعد المكونات الإضافية مسؤولة عن نشر النواة للتحليل - سيتم تنزيلها تلقائيًا عند الإطلاق الأول.
من الممكن أيضًا تشغيل المحلل مباشرةً من خلال سرد المصادر و classpath.
يمكن إجراء التحليل إذا كان الكمبيوتر يلبي متطلبات النظام التالية:
- نظام التشغيل: ويندوز ، لينكس ، ماك.
- الحد الأدنى من إصدار Java لتشغيل المحلل: Java 8 (64 بت). ملاحظة: يمكن للمشروع الذي تم تحليله استخدام أي إصدار من Java ؛
- الحد الأدنى من إصدار IntelliJ IDEA هو 2017.2.
البرنامج المساعد ل Maven
إذا كان المشروع الذي تعمل عليه يعتمد على نظام إنشاء Maven ، فيمكنك استخدام البرنامج المساعد pvsstudio-maven-plugin. للقيام بذلك ، أضف ما يلي إلى ملف المشروع pom.xml:
<pluginRepositories> <pluginRepository> <id>pvsstudio-maven-repo</id> <url>http:
قبل البدء في التحليل ، يجب عليك إدخال بيانات الترخيص:
mvn pvsstudio:pvsCredentials "-Dpvsstudio.username=USR" "-Dpvsstudio.serial=KEY"
بعد ذلك ، سيتم حفظ معلومات الترخيص في
٪ APPDATA٪ / PVS-Studio-Java / PVS-Studio.lic على Windows أو
~ / .config / PVS-Studio-Java / PVS-Studio.lic على
الماكنتوش ولينكس.
بعد ذلك ، يمكنك تشغيل التحليل:
$ mvn pvsstudio:pvsAnalyze
في كتلة
<المحلل> ، يمكنك تكوين المحلل. يمكن الاطلاع على قائمة بجميع الإعدادات
هنا .
البرنامج المساعد لالممهد
إذا كان المشروع الذي تعمل عليه يعتمد على نظام بناء Gradle ، فيمكنك استخدام البرنامج المساعد pvsstudio-gradle-plugin. للقيام بذلك ، أضف ما يلي إلى ملف المشروع build.gradle:
buildscript { repositories { mavenCentral() maven { url uri('http://files.viva64.com/java/pvsstudio-maven-repository/') } } dependencies { classpath group: 'com.pvsstudio', name: 'pvsstudio-gradle-plugin', version: '{VERSION_PVS_JAVA}' } }
apply plugin: com.pvsstudio.PvsStudioGradlePlugin pvsstudio { outputType = 'text' outputFile = 'path/to/output.txt' .... }
قبل البدء في التحليل ، يجب عليك إدخال بيانات الترخيص:
./gradlew pvsCredentials "-Ppvsstudio.username=USR" "-Ppvsstudio.serial=KEY"
بعد ذلك ، سيتم حفظ معلومات الترخيص ، وكذلك مع البرنامج المساعد Maven ، في
٪ APPDATA٪ / PVS-Studio-Java / PVS-Studio.lic في نظام التشغيل Windows OS أو في
~ / .config / PVS-Studio-Java / PVS- Studio.lic على
macOS و Linux.
بعد ذلك ، يمكنك تشغيل التحليل:
$ ./gradlew pvsAnalyze
في كتلة pvsstudio ، يمكنك تكوين المحلل. يمكن الاطلاع على قائمة بجميع الإعدادات
هنا .
البرنامج المساعد ل IntelliJ IDEA
يمكن أيضًا استخدام محلل Java PVS-Studio كبرنامج إضافي لبرنامج IntelliJ IDEA. في هذه الحالة ، يتم إجراء تحليل بنية المشروع عن طريق IDE هذا ، ويوفر المكون الإضافي واجهة رسومية ملائمة للعمل مع المحلل.
يمكن تثبيت البرنامج المساعد PVS-Studio لـ IDEA من:
بعد تثبيت المكوّن الإضافي ، يجب عليك إدخال بيانات الترخيص:
1) تحليل → PVS- ستوديو → الإعدادات
2) علامة التبويب التسجيل:
الآن يمكنك البدء في تحليل المشروع الحالي:
الترخيص
يركز محلل PVS-Studio على فرق التطوير وهو منتج أساسي من منتجات B2B. للتعرف على قدرات المحلل ، يمكنك
طلب مفتاح تجريبي .
إذا كنت تقوم بتطوير مشاريع مفتوحة المصدر ، أو على سبيل المثال ، كطالب ، فيمكنك استخدام أحد
خيارات الترخيص المجانية
لبرنامج PVS-Studio.
قمع التحذيرات الخاطئة
لمكافحة الإيجابيات الخاطئة ، يقدم المحلل مجموعة من الآليات المختلفة:
1. استخدام التعليقات الخاصة في الكود:
void f() { int x = 01000;
2. باستخدام
ملف قمع .
3. استخدام التعليقات التوضيحيةSuppressWarnings (....)
يدرك المحلل بعض التعليقات التوضيحية وقد لا يولد تحذيرات على الكود الذي تم ترميزه بالفعل. على سبيل المثال:
@SuppressWarnings("OctalInteger") void f() { int x = 01000; }
استنتاج
ما درسناه للتو ليس سوى جزء صغير مما يمكن قوله. على سبيل المثال ، هناك إمكانية للتكامل مع SonarQube وما إلى ذلك. PVS-Studio Java هي منطقة شابة تعمل بنشاط على تطوير:
- تم إضافة وظائف جديدة
- توسيع الفرص
- يتم إضافة وتحسين قواعد التشخيص ،
- وأكثر من ذلك بكثير.
لاستكشاف القدرات الحالية للمحلل وعدم تفويت ظهور قدرات جديدة في المستقبل ، اقرأ
مدونة PVS-Studio.

إذا كنت ترغب في مشاركة هذه المقالة مع جمهور يتحدث الإنجليزية ، فالرجاء استخدام الرابط الخاص بالترجمة: مكسيم ستيفانوف.
تعرف على PVS-Studio Static Analyzer for Java