Einführung in PVS-Studio Static Analyzer für Java

Im Laufe der Jahre hat das PVS-Studio-Team den gleichnamigen statischen Analysator entwickelt. Derzeit ist der Analyzer eine komplexe Softwarelösung und bietet die Möglichkeit, Programmiersprachen wie C, C ++, C # und Java auf Windows-, Linux- und MacOS-Plattformen zu analysieren. In jüngerer Zeit wurde Java zu einer Reihe unterstützter Programmiersprachen hinzugefügt. Wenn sich der PVS-Studio-Analysator bereits seit vielen Jahren unter C ++ - und C # -Entwicklern etabliert hat, ist PVS-Studio immer noch ein Neuling für das Java-Publikum. Viele haben nicht einmal von dem Analysegerät gehört, und diejenigen, die es gehört haben, sind mit all seinen Funktionen nicht sehr vertraut. Daher möchte ich Ihnen in diesem Artikel PVS-Studio Java vorstellen und über Startmethoden und deren Funktionen sprechen.

Abbildung 2


Allgemeine Informationen


Der statische Codeanalysator für PVS-Studio Java besteht aus zwei Hauptteilen: dem Kernel, der die Analyse durchführt, und Plug-Ins für die Integration in Montagesysteme (Gradle, Maven) und IDE (IntelliJ IDEA).

Plugins erhalten die Projektstruktur (Sätze von Quelldateien und Klassenpfad) und übertragen diese Informationen anschließend an den Kernel. Darüber hinaus sind Plugins für die Bereitstellung des Kernels zur Analyse verantwortlich. Er wird beim ersten Start automatisch heruntergeladen.

Es ist auch möglich, den Analysator direkt auszuführen, indem Sie die Quellen und den Klassenpfad auflisten.

Die Analyse kann durchgeführt werden, wenn Ihr Computer die folgenden Systemanforderungen erfüllt:

  • Betriebssystem: Windows, Linux, macOS;
  • Mindestversion von Java zum Ausführen des Analysators: Java 8 (64-Bit). Hinweis: Das analysierte Projekt kann jede Java-Version verwenden.
  • Die Mindestversion von IntelliJ IDEA ist 2017.2.

Plugin für Maven


Wenn das Projekt, an dem Sie arbeiten, auf dem Maven-Build-System basiert, können Sie das Plugin pvsstudio-maven-plugin verwenden. Fügen Sie dazu der Projektdatei pom.xml Folgendes hinzu:

<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> 

Bevor Sie mit der Analyse beginnen, müssen Sie die Lizenzdaten eingeben:

 mvn pvsstudio:pvsCredentials "-Dpvsstudio.username=USR" "-Dpvsstudio.serial=KEY" 

Danach werden die Lizenzinformationen in % APPDATA% / PVS-Studio-Java / PVS-Studio.lic unter Windows oder ~ / .config / PVS-Studio-Java / PVS-Studio.lic unter MacOS und Linux gespeichert .

Danach können Sie die Analyse ausführen:

 $ mvn pvsstudio:pvsAnalyze 

Im Block <Analysator> können Sie den Analysator konfigurieren. Eine Liste aller Einstellungen finden Sie hier .

Plugin für Gradle


Wenn das Projekt, an dem Sie arbeiten, auf dem Gradle-Build-System basiert, können Sie das Plugin pvsstudio-gradle-plugin verwenden. Fügen Sie dazu der Projektdatei build.gradle Folgendes hinzu:

 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' .... } 

Bevor Sie mit der Analyse beginnen, müssen Sie die Lizenzdaten eingeben:

 ./gradlew pvsCredentials "-Ppvsstudio.username=USR" "-Ppvsstudio.serial=KEY" 

Danach werden die Lizenzinformationen sowie das Maven-Plugin in % APPDATA% / PVS-Studio-Java / PVS-Studio.lic unter Windows oder in ~ / .config / PVS-Studio-Java / PVS- gespeichert. Studio.lic unter MacOS und Linux.

Danach können Sie die Analyse ausführen:

 $ ./gradlew pvsAnalyze 

Im pvsstudio-Block können Sie den Analysator konfigurieren. Eine Liste aller Einstellungen finden Sie hier .

Plugin für IntelliJ IDEA


Der PVS-Studio Java Analyzer kann auch als Plug-In für IntelliJ IDEA verwendet werden. In diesem Fall wird die Analyse der Projektstruktur mit Hilfe dieser IDE durchgeführt, und das Plug-In bietet eine praktische grafische Oberfläche für die Arbeit mit dem Analysator.

Das PVS-Studio Plugin für IDEA kann installiert werden von:


Nachdem Sie das Plugin installiert haben, müssen Sie die Lizenzdaten eingeben:

1) Analysieren → PVS-Studio → Einstellungen

Bild 26

2) Registerkarte Registrierung:

Bild 28

Jetzt können Sie mit der Analyse des aktuellen Projekts beginnen:

Bild 30

Lizenzierung


Der PVS-Studio Analyzer konzentriert sich auf Entwicklungsteams und ist im Wesentlichen ein proprietäres B2B-Produkt. Um sich mit den Funktionen des Analysegeräts vertraut zu machen, können Sie einen Testschlüssel anfordern .

Wenn Sie Open Source-Projekte entwickeln oder beispielsweise Student sind, können Sie eine der kostenlosen Lizenzierungsoptionen von PVS-Studio verwenden.

Unterdrückung falscher Warnungen


Zur Bekämpfung von Fehlalarmen bietet der Analysator eine Reihe verschiedener Mechanismen:

1. Verwenden Sie spezielle Kommentare im Code:

 void f() { int x = 01000; //-V6061 } 

2. Verwenden der Unterdrückungsdatei .

3. Verwenden von @ SuppressWarnings-Anmerkungen (....)

Der Analysator kennt einige Anmerkungen und generiert möglicherweise keine Warnungen für Code, der bereits markiert wurde. Zum Beispiel:

 @SuppressWarnings("OctalInteger") void f() { int x = 01000; } 

Fazit


Was wir gerade untersucht haben, ist nur ein kleiner Teil dessen, was erzählt werden könnte. Beispielsweise besteht die Möglichkeit der Integration in SonarQube usw. PVS-Studio Java ist ein junger Bereich, der sich aktiv entwickelt:

  • neue Funktionalität wird hinzugefügt
  • Möglichkeiten erweitern
  • Diagnoseregeln werden hinzugefügt und verbessert,
  • und vieles mehr.

Lesen Sie den PVS-Studio- Blog, um die vorhandenen Funktionen des Analysators vollständig zu erkunden und das Erscheinen neuer Funktionen in Zukunft nicht zu verpassen.



Wenn Sie diesen Artikel einem englischsprachigen Publikum zugänglich machen möchten, verwenden Sie bitte den Link zur Übersetzung: Maxim Stefanov. Lernen Sie den PVS-Studio Static Analyzer für Java kennen

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


All Articles