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

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