Ao longo dos anos, a equipe PVS-Studio vem desenvolvendo o analisador estático com o mesmo nome. No momento, o analisador é uma solução de software complexa e oferece a capacidade de analisar linguagens de programação como C, C ++, C # e Java nas plataformas Windows, Linux e macOS. Mais recentemente, o Java foi adicionado a várias linguagens de programação suportadas. Se o analisador PVS-Studio já se estabeleceu entre os desenvolvedores de C ++ e C # por muitos anos, o PVS-Studio ainda é um novato para o público Java. Muitos nem ouviram falar do analisador e aqueles que o ouviram não estão muito familiarizados com todas as suas capacidades. Portanto, neste artigo, gostaria de apresentar o PVS-Studio Java, falar sobre métodos de inicialização e seus recursos.
Informação geral
O analisador de código estático Java do PVS-Studio consiste em duas partes principais: o kernel que executa a análise e plug-ins para integração em sistemas de montagem (Gradle, Maven) e IDE (IntelliJ IDEA).
Os plug-ins recebem a estrutura do projeto (conjuntos de arquivos de origem e caminho de classe), após o que eles transferem essas informações para o kernel. Além disso, os plugins são responsáveis pela implantação do kernel para análise - ele será baixado automaticamente no primeiro lançamento.
Também é possível executar o analisador diretamente listando as fontes e o caminho de classe.
A análise pode ser realizada se o seu computador atender aos seguintes requisitos de sistema:
- Sistema operacional: Windows, Linux, macOS;
- Versão mínima do Java para executar o analisador: Java 8 (64 bits). Nota: o projeto analisado pode usar qualquer versão do Java;
- A versão mínima do IntelliJ IDEA é 2017.2.
Plugin para Maven
Se o projeto em que você estiver trabalhando for baseado no sistema de compilação Maven, você poderá usar o plugin pvsstudio-maven-plugin. Para fazer isso, adicione o seguinte ao arquivo pom.xml do projeto:
<pluginRepositories> <pluginRepository> <id>pvsstudio-maven-repo</id> <url>http:
Antes de iniciar a análise, você deve inserir os dados da licença:
mvn pvsstudio:pvsCredentials "-Dpvsstudio.username=USR" "-Dpvsstudio.serial=KEY"
Depois disso, as informações da licença serão salvas em
% APPDATA% / PVS-Studio-Java / PVS-Studio.lic no Windows ou
~ / .config / PVS-Studio-Java / PVS-Studio.lic no macOS e Linux.
Depois disso, você pode executar a análise:
$ mvn pvsstudio:pvsAnalyze
No bloco
<analyzer> , você pode configurar o analisador. Uma lista de todas as configurações pode ser encontrada
aqui .
Plugin for gradle
Se o projeto em que você estiver trabalhando for baseado no sistema de construção Gradle, você poderá usar o plugin pvsstudio-gradle-plugin. Para fazer isso, adicione o seguinte ao arquivo de projeto 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' .... }
Antes de iniciar a análise, você deve inserir os dados da licença:
./gradlew pvsCredentials "-Ppvsstudio.username=USR" "-Ppvsstudio.serial=KEY"
Depois disso, as informações da licença, assim como o plug-in Maven, serão salvas em
% APPDATA% / PVS-Studio-Java / PVS-Studio.lic no sistema operacional Windows ou em
~ / .config / PVS-Studio-Java / PVS- Studio.lic no macOS e Linux.
Depois disso, você pode executar a análise:
$ ./gradlew pvsAnalyze
No bloco pvsstudio, você pode configurar o analisador. Uma lista de todas as configurações pode ser encontrada
aqui .
Plugin para IntelliJ IDEA
O analisador Java PVS-Studio também pode ser usado como um plug-in para o IntelliJ IDEA. Nesse caso, a análise da estrutura do projeto é realizada por meio desse IDE, e o plug-in fornece uma interface gráfica conveniente para trabalhar com o analisador.
O plug-in PVS-Studio para IDEA pode ser instalado em:
Depois de instalar o plug-in, você deve inserir os dados da licença:
1) Analisar → PVS-Studio → Configurações
2) guia Registro:
Agora você pode iniciar a análise do projeto atual:
Licenciamento
O analisador PVS-Studio é focado em equipes de desenvolvimento e é essencialmente um produto B2B proprietário. Para se familiarizar com os recursos do analisador, você pode
solicitar uma chave de avaliação .
Se você estiver desenvolvendo projetos de código aberto ou, por exemplo, sendo um estudante, poderá usar uma das
opções de licenciamento gratuitas
do PVS-Studio.
Supressão de falsos avisos
Para combater falsos positivos, o analisador fornece um conjunto de diferentes mecanismos:
1. Usando comentários especiais no código:
void f() { int x = 01000;
2. Usando o
arquivo suprimir .
3. Usando anotações @SuppressWarnings (....)
O analisador está ciente de algumas anotações e pode não gerar avisos sobre o código que já foi marcado. Por exemplo:
@SuppressWarnings("OctalInteger") void f() { int x = 01000; }
Conclusão
O que acabamos de examinar é apenas uma pequena parte do que poderia ser dito. Por exemplo, existe a possibilidade de integração com o SonarQube e assim por diante. O PVS-Studio Java é uma área jovem que está desenvolvendo ativamente:
- nova funcionalidade é adicionada
- expansão de oportunidades
- regras de diagnóstico são adicionadas e aprimoradas,
- e muito mais
Para explorar completamente os recursos existentes do analisador e não perder a aparência de novos no futuro, leia o
blog do PVS-Studio.

Se você deseja compartilhar este artigo com um público que fala inglês, use o link para a tradução: Maxim Stefanov.
Conheça o PVS-Studio Static Analyzer for Java