تقديم PVS-Studio محلل ثابت لجافا

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

الشكل 2


معلومات عامة


يتكون محلل الشفرة الثابتة في 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://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 

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

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


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

صورة 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.



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

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


All Articles