多年来,PVS-Studio团队一直在开发同名的静态分析仪。 在这一点上,分析仪代表了一个复杂的软件解决方案,它可以分析Windows,Linux和macOS平台上的C,C ++,C#和Java等编程语言。 最近,Java语言加入了受支持语言的行列。 在相当长的一段时间内,PVS-Studio分析器已经证明自己是C ++和C#开发人员中可靠的工具,而对于Java读者来说,PVS-Studio仍然是一个新手。 许多人甚至没有听说过分析仪,而那些听过的人对分析仪的全部功能并不十分熟悉。 因此,在本文中,我想向您介绍PVS-Studio Java,讨论启动它的方法及其功能。
总览
PVS-Studio Java静态代码分析器由2个主要部分组成:执行分析的内核以及用于集成到构建系统(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"
之后,许可证信息将保存在Windows OS上的
%APPDATA%/ PVS-Studio-Java / PVS-Studio.lic中 ,或在macOS和Linux上的
〜/ .config / PVS-Studio-Java / PVS-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
博客 。