推出适用于Java的PVS-Studio静态分析器

多年来,PVS-Studio团队一直在开发同名的静态分析仪。 目前,该分析仪是一个复杂的软件解决方案,能够分析Windows,Linux和macOS平台上的编程语言,例如C,C ++,C#和Java。 最近,Java已被添加到许多受支持的编程语言中。 如果PVS-Studio分析仪已经在C ++和C#开发人员中确立了多年的地位,那么PVS-Studio仍然是Java读者的新手。 许多人甚至没有听说过该分析仪,而那些听说过的人对它的全部功能不是很熟悉。 因此,在本文中,我想向您介绍PVS-Studio Java,讨论启动方法及其功能。

图2


一般资讯


PVS-Studio Java静态代码分析器由两个主要部分组成:执行分析的内核,以及用于集成到装配系统(Gradle,Maven)和IDE(IntelliJ IDEA)中的插件。

插件接收项目结构(源文件和类路径的集合),然后将这些信息传输到内核。 此外,插件负责部署内核进行分析-首次启动时将自动下载该内核。

也可以通过列出源代码和类路径直接运行分析器。

如果您的计算机满足以下系统要求,则可以执行分析:

  • 操作系统:Windows,Linux,macOS;
  • 运行分析器的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" 

之后,许可证信息将保存在Windows上的%APPDATA%/ PVS-Studio-Java / PVS-Studio.lic或macOS和Linux上的〜/ .config / PVS-Studio-Java / PVS-Studio.lic中

之后,您可以运行分析:

 $ mvn pvsstudio:pvsAnalyze 

<analyzer>块中,可以配置分析器。 在此处可以找到所有设置的列表。

Gradle插件


如果您正在处理的项目基于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插件将保存在Windows上的%APPDATA%/ PVS-Studio-Java / PVS-Studio.lic〜/ .config / PVS-Studio-Java / PVS-中适用于macOS和Linux的Studio.lic

之后,您可以运行分析:

 $ ./gradlew pvsAnalyze 

在pvsstudio块中,可以配置分析器。 在此处可以找到所有设置的列表。

IntelliJ IDEA的插件


PVS-Studio Java分析器也可以用作IntelliJ IDEA的插件。 在这种情况下,将使用此IDE进行项目结构的分析,并且插件提供了一个方便的图形界面来与分析仪一起使用。

可以从以下位置安装IDEA的PVS-Studio插件:


安装插件后,必须输入许可证数据:

1)分析→PVS-Studio→设置

图片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 博客



如果您想与讲英语的人分享这篇文章,请使用以下链接:Maxim Stefanov。 了解适用于Java的PVS-Studio静态分析器

Source: https://habr.com/ru/post/zh-CN462275/


All Articles