Con los años, el equipo de PVS-Studio ha estado desarrollando el analizador estático del mismo nombre. Por el momento, el analizador es una solución de software compleja y proporciona la capacidad de analizar lenguajes de programación como C, C ++, C # y Java en las plataformas Windows, Linux y macOS. Más recientemente, Java se ha agregado a varios lenguajes de programación compatibles. Si el analizador PVS-Studio ya se ha establecido entre los desarrolladores de C ++ y C # durante muchos años, entonces PVS-Studio sigue siendo un novato para la audiencia de Java. Muchos ni siquiera escucharon sobre el analizador, y quien lo escuchó sabía poco sobre todas sus capacidades. Por lo tanto, en este artículo me gustaría presentarle PVS-Studio Java, hablar sobre los métodos de lanzamiento y sus capacidades.
Información general
El analizador de código estático Java PVS-Studio consta de dos partes principales: el núcleo que realiza el análisis y los complementos para la integración en sistemas de ensamblaje (Gradle, Maven) e IDE (IntelliJ IDEA).
Los complementos reciben la estructura del proyecto (conjuntos de archivos fuente y classpath), después de lo cual transfieren esta información al núcleo. Además, los complementos son responsables de implementar el núcleo para el análisis; se descargará automáticamente en el primer lanzamiento.
También es posible ejecutar el analizador directamente enumerando las fuentes y classpath.
El análisis se puede realizar si su computadora cumple con los siguientes requisitos del sistema:
- Sistema operativo: Windows, Linux, macOS;
- Versión mínima de Java para ejecutar el analizador: Java 8 (64 bits). Nota: el proyecto analizado puede usar cualquier versión de Java;
- La versión mínima de IntelliJ IDEA es 2017.2.
Plugin para Maven
Si el proyecto en el que está trabajando se basa en el sistema de compilación Maven, puede usar el complemento pvsstudio-maven-plugin. Para hacer esto, agregue lo siguiente al archivo pom.xml del proyecto:
<pluginRepositories> <pluginRepository> <id>pvsstudio-maven-repo</id> <url>http:
Antes de comenzar el análisis, debe ingresar los datos de la licencia:
mvn pvsstudio:pvsCredentials "-Dpvsstudio.username=USR" "-Dpvsstudio.serial=KEY"
Después de eso, la información de la licencia se guardará en
% APPDATA% / PVS-Studio-Java / PVS-Studio.lic en Windows o
~ / .config / PVS-Studio-Java / PVS-Studio.lic en macOS y Linux.
Después de eso, puede ejecutar el análisis:
$ mvn pvsstudio:pvsAnalyze
En el bloque
<analyzer> , puede configurar el analizador. Puede encontrar una lista de todas las configuraciones
aquí .
Plugin para gradle
Si el proyecto en el que está trabajando se basa en el sistema de compilación Gradle, puede usar el complemento pvsstudio-gradle-plugin. Para hacer esto, agregue lo siguiente al archivo de proyecto 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 comenzar el análisis, debe ingresar los datos de la licencia:
./gradlew pvsCredentials "-Ppvsstudio.username=USR" "-Ppvsstudio.serial=KEY"
Después de eso, la información de la licencia, así como con el complemento Maven, se guardará en
% APPDATA% / PVS-Studio-Java / PVS-Studio.lic en el sistema operativo Windows o en
~ / .config / PVS-Studio-Java / PVS- Studio.lic en macOS y Linux.
Después de eso, puede ejecutar el análisis:
$ ./gradlew pvsAnalyze
En el bloque pvsstudio, puede configurar el analizador. Puede encontrar una lista de todas las configuraciones
aquí .
Plugin para IntelliJ IDEA
El analizador PVS-Studio Java también se puede utilizar como complemento para IntelliJ IDEA. En este caso, el análisis de la estructura del proyecto se lleva a cabo utilizando este IDE, y el complemento proporciona una interfaz gráfica conveniente para trabajar con el analizador.
El complemento PVS-Studio para IDEA se puede instalar desde:
Después de haber instalado el complemento, debe ingresar los datos de la licencia:
1) Analizar → PVS-Studio → Configuración
2) Pestaña de registro:
Ahora puede comenzar el análisis del proyecto actual:
Licencia
El analizador PVS-Studio está enfocado en equipos de desarrollo y es esencialmente un producto B2B propietario. Para familiarizarse con las capacidades del analizador, puede
solicitar una clave de prueba .
Si está desarrollando proyectos de código abierto, o, por ejemplo, siendo estudiante, puede utilizar una de las
opciones de licencia gratuita
de PVS-Studio.
Supresión de falsas advertencias
Para combatir los falsos positivos, el analizador proporciona un conjunto de mecanismos diferentes:
1. Usando comentarios especiales en el código:
void f() { int x = 01000;
2. Usando el
archivo de supresión .
3. Uso de anotaciones @SuppressWarnings (....)
El analizador está al tanto de algunas anotaciones y puede no generar advertencias en el código que ya ha sido marcado. Por ejemplo:
@SuppressWarnings("OctalInteger") void f() { int x = 01000; }
Conclusión
Lo que acabamos de examinar es solo una pequeña parte de lo que podría contarse. Por ejemplo, existe la posibilidad de integración con SonarQube, etc. PVS-Studio Java es un área joven que está desarrollando activamente:
- se agrega nueva funcionalidad
- expandiendo oportunidades
- se agregan y mejoran las reglas de diagnóstico,
- y mucho mas
Para explorar completamente las capacidades existentes del analizador y no perderse la aparición de otras nuevas en el futuro, lea el
blog PVS-Studio.

Si desea compartir este artículo con una audiencia de habla inglesa, utilice el enlace a la traducción: Maxim Stefanov.
Conozca el analizador estático PVS-Studio para Java