تعرف على PVS-Studio Static Analyzer for Java

على مر السنين ، قام فريق PVS-Studio بتطوير محلل ثابت بنفس الاسم. في هذه المرحلة ، يمثل المحلل حلاً برمجيًا معقدًا ، والذي يوفر تحليل لغات البرمجة ، مثل C و C ++ و C # و Java على أنظمة Windows و Linux و macOS. في الآونة الأخيرة ، انضمت لغة جافا إلى صفوف اللغات المدعومة. أثبت محلل PVS-Studio نفسه كأداة موثوق بها بين مطوري C ++ و C # في وقت ما ، في حين أن PVS-Studio لجمهور جافا لا يزال قادمًا جديدًا. كثيرون لم يسمعوا حتى بالمحلل ، والذين لم يكونوا على دراية بكل قدراته. لذلك ، أود في هذه المقالة تقديم PVS-Studio Java إليك ، والتحدث عن طرق تشغيله وقدراته.

الشكل 3



نظرة عامة


يتكون محلل الشفرة الثابتة PVS-Studio Java من جزأين رئيسيين: النواة ، التي تجري التحليل ، والمكونات الإضافية للتكامل في أنظمة الإنشاء (Gradle ، Maven) و IDE (IntelliJ IDEA).

تحصل الإضافات على بنية المشروع (مجموعة من الملفات المصدر و classpath) ، ثم تنقل هذه المعلومات إلى مركز التحليل. بالإضافة إلى ذلك ، تعد المكونات الإضافية مسؤولة عن نشر النواة للتحليل - سيتم تحميلها تلقائيًا في الجولة الأولى.

من الممكن أيضًا تشغيل المحلل مباشرةً ، مع سرد المصادر و classpath.

يمكن إجراء التحليل إذا كان الكمبيوتر يلبي متطلبات النظام التالية:

نظام التشغيل: ويندوز ، لينكس ، ماك.

الحد الأدنى المطلوب لإصدار Java لتشغيل المحلل باستخدام: Java 8 (64-bit). ملاحظة: يمكن للمشروع الجاري تحليله استخدام أي إصدار Java ؛

الحد الأدنى من إصدار IntelliJ IDEA: 2017.2.

البرنامج المساعد ل maven


إذا كان المشروع الذي تعمل عليه يعتمد على نظام إنشاء Maven ، فيمكنك استخدام البرنامج المساعد pvsstudio-maven-plugin. للقيام بذلك ، تحتاج إلى إضافة ما يلي إلى ملف pom.xml:
<pluginRepositories> <pluginRepository> <id>pvsstudio-maven-repo</id> <url>http://files.viva64.com/java/pvsstudio-maven-repository/</url> </pluginRepository> </pluginRepositories> <build> <plugins> <plugin> <groupId>com.pvsstudio</groupId> <artifactId>pvsstudio-maven-plugin</artifactId> <version>{VERSION_PVS_JAVA}</version> <configuration> <analyzer> <outputType>text</outputType> <outputFile>path/to/output.txt</outputFile> .... </analyzer> </configuration> </plugin> </plugins> </build> 

قبل تشغيل التحليل ، تحتاج إلى إدخال بيانات الترخيص:
 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 

في الكتلة <analyzer> يمكنك تكوين المحلل. يمكن الاطلاع على قائمة بجميع الإعدادات هنا .

البرنامج المساعد لالممهد


إذا كان المشروع الذي تعمل عليه يعتمد على نظام بناء 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" 

بعد ذلك ، سيتم حفظ معلومات الترخيص في ٪ 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- ستوديو -> الإعدادات

صورة 26


2) علامة التبويب التسجيل:

صورة 28


يمكنك بعد ذلك تشغيل تحليل المشروع الحالي:

صورة 30


ترخيص


تم تصميم محلل PVS-Studio لفرق من المطورين ويمثل أساسًا منتج B2B خاصًا. للتجول بكل قدرات المحلل ، يمكنك طلب مفتاح تجريبي .

إذا كنت تقوم بتطوير مشاريع مفتوحة ، أو على سبيل المثال ، أنت طالب ، فبإمكانك استخدام أحد خيارات الترخيص المجانية لبرنامج PVS-Studio.

ايجابيات كاذبة قمع


لمحاربة الإيجابيات الخاطئة ، يقدم المحلل مجموعة من الآليات المختلفة.

1. استخدام التعليقات الخاصة في الكود:
 void f() { int x = 01000; //-V6061 } 

2. باستخدام ملف قمع .

3. استخدام التعليقات التوضيحيةSuppressWarnings (....).

يدرك المحلل التعليقات التوضيحية وقد لا يصدر تحذيرات على الكود الذي تم تعليمه بالفعل. على سبيل المثال:
 @SuppressWarnings("OctalInteger") void f() { int x = 01000; } 


استنتاج


ما نظرنا إليه للتو ليس سوى جزء صغير مما يمكن قوله. على سبيل المثال ، من الممكن أيضًا الاندماج مع SonarQube والمزيد. PVS-Studio Java هو اتجاه جديد يتم تطويره بنشاط:
  • تم إضافة وظائف جديدة ،
  • قدرات تتوسع ،
  • يتم إضافة وتحسين قواعد التشخيص ،
  • وأكثر من ذلك بكثير.

لاستكشاف قدرات المحلل الحالية بشكل كامل وعدم تفويت ظهور قدرات جديدة في المستقبل ، اتبع مدونة PVS-Studio.

Source: https://habr.com/ru/post/ar462267/


All Articles