Быстрый запуск PVS-Studio Java
- Быстрый запуск PVS-Studio через Gradle
- Быстрый запуск PVS-Studio через Maven
- Работа с результатами анализа
- Дополнительные ссылки
В этой документации будет рассмотрен быстрый запуск анализа Java проекта через плагины для сборочных систем Gradle и Maven.
Также PVS-Studio Java предоставляет интеграцию с IDE IntelliJ IDEA через специальный плагин и интеграцию с Visual Studio Code через специальное расширение. Подробнее можно прочитать в документации:
- Использование расширения PVS-Studio для Visual Studio Code.
- Работа PVS-Studio в IntelliJ IDEA, Android Studio и OpenIDE.
Быстрый запуск PVS-Studio через Gradle
Интеграция в проект через скрипт сборки
Для интеграции плагина в проект, использующий Groovy DSL, добавьте следующий код в скрипт сборки build.gradle:
buildscript {
repositories {
mavenCentral()
maven {
url uri('https://cdn.pvs-studio.com/java/pvsstudio-maven-repository/')
}
}
dependencies {
classpath 'com.pvsstudio:pvsstudio-gradle-plugin:latest.release'
}
}
apply plugin: com.pvsstudio.PvsStudioGradlePlugin
pvsstudio {
outputType = 'json'
outputFile = '.PVS-Studio/report.json'
analysisMode = ['GA', 'OWASP']
}
Для Kotlin DSL добавьте следующий код в build.gradle.kts:
import com.pvsstudio.WarningGroup
buildscript {
repositories {
mavenCentral()
maven {
url =
uri("https://cdn.pvs-studio.com/java/pvsstudio-maven-repository/")
}
}
dependencies {
classpath("com.pvsstudio:pvsstudio-gradle-plugin:latest.release")
}
}
apply<com.pvsstudio.PvsStudioGradlePlugin>()
extensions.configure<com.pvsstudio.AnalyzerConfig>("pvsstudio") {
outputType = "json"
outputFile = ".PVS-Studio/report.json"
analysisMode = setOf(WarningGroup.GA, WarningGroup.OWASP)
}
Запуск анализа
Перед запуском анализа необходимо ввести лицензию. Её активация происходит с помощью следующей команды:
./gradlew pvsCredentials "-Ppvsstudio.userName=${USER_NAME}" \
"-Ppvsstudio.licenseKey=${LICENSE_KEY}"
Вместо переменной USER_NAME укажите имя пользователя анализатора, привязанное к ключу, а вместо LICENSE_KEY — лицензионный ключ.
Можно запускать анализ. Для этого выполните следующую команду:
./gradlew pvsAnalyze
Обратите внимание: при анализе проекта плагин запускает ядро Java анализатора, которое по умолчанию использует версию Java из переменной окружения PATH. Задать другую версию можно с помощью настройки плагина javaPath. Подробное описание находится в документации.
Быстрый запуск PVS-Studio через Maven
Интеграция через файл конфигурации
Для интеграции плагина в проект добавьте следующий код в файл pom.xml:
<pluginRepositories>
<pluginRepository>
<id>pvsstudio-maven-repo</id>
<url>https://cdn.pvs-studio.com/java/pvsstudio-maven-repository/</url>
</pluginRepository>
</pluginRepositories>
<build>
<plugins>
<plugin>
<groupId>com.pvsstudio</groupId>
<artifactId>pvsstudio-maven-plugin</artifactId>
<version>7.42.105102</version>
<configuration>
<analyzer>
<outputType>json</outputType>
<outputFile>.PVS-Studio/report.json</outputFile>
<analysisMode>GA, OWASP</analysisMode>
</analyzer>
</configuration>
</plugin>
</plugins>
</build>
Запуск анализа
Перед запуском анализа необходимо ввести лицензию. Её активация происходит с помощью следующей команды:
mvn pvsstudio:pvsCredentials "-Dpvsstudio.userName=${USER_NAME}" \
"-Dpvsstudio.licenseKey=${LICENSE_KEY}"
Вместо переменной USER_NAME укажите имя пользователя анализатора, привязанное к ключу, а вместо LICENSE_KEY — лицензионный ключ.
Можно запускать анализ. Для этого выполните следующую команду:
mvn pvsstudio:pvsAnalyze
Обратите внимание: при анализе проекта плагин запускает ядро Java анализатора, которое по умолчанию использует версию Java из переменной окружения PATH. Задать другую версию можно с помощью настройки плагина javaPath. Подробное описание находится в документации.
Запуск анализа без интеграции в скрипт сборки
Существует сценарий, при котором можно запускать анализ Maven-проектов без модификации файла pom.xml. В этом случае старт анализа осуществляется через запуск специальной команды в директории проекта:
Для PowerShell:
$repo = "https://files.pvs-studio.com/java/pvsstudio-maven-repository/"
mvn -f ./pom.xml `
"-Dmaven.repo.remote= $repo" `
"-Dmaven.test.skip=true" `
"-Dpvsstudio.outputType=json" `
"-Dpvsstudio.outputFile=.PVS-Studio/report.json" `
"-Dpvsstudio.analysisMode=GA,OWASP" `
com.pvsstudio:pvsstudio-maven-plugin:7.42.105102:pvsAnalyze
Для Bash:
repo=https://files.pvs-studio.com/java/pvsstudio-maven-repository/
mvn -f ./pom.xml \
-Dmaven.repo.remote= "$repo" \
-Dmaven.test.skip=true \
-Dpvsstudio.outputType=json \
-Dpvsstudio.outputFile=.PVS-Studio/report.json \
-Dpvsstudio.analysisMode=GA,OWASP \
com.pvsstudio:pvsstudio-maven-plugin:7.42.105102:pvsAnalyze
Для cmd:
set REPO=https://files.pvs-studio.com/java/pvsstudio-maven-repository/
mvn -f ./pom.xml ^
"-Dmaven.repo.remote=%REPO%" ^
"-Dmaven.test.skip=true" ^
"-Dpvsstudio.outputType=json" ^
"-Dpvsstudio.outputFile=.PVS-Studio/report.json" ^
"-Dpvsstudio.analysisMode=GA,OWASP" ^
com.pvsstudio:pvsstudio-maven-plugin:7.42.105102:pvsAnalyze
Работа с результатами анализа
После завершения анализа в директории .PVS-Studio в корне проекта будет создан файл report.json — отчёт со срабатываниями анализатора PVS-Studio Java.
Ознакомиться с результатами отчёта можно через:
- плагин PVS-Studio для IntelliJ IDEA;
- расширение PVS-Studio для Visual Studio Code;
- инструменты контроля качества кода;
- HTML-формат отчёта.
Конвертация отчёта
Отчёт анализатора PVS-Studio может быть представлен в различных форматах. Для его конвертации из одного поддерживаемого формата в другой воспользуйтесь утилитой PlogConverter. Она входит в состав дистрибутива PVS-Studio. Один из поддерживаемых форматов вывода — FullHTML, который позволяет изучать отчёт анализатора в браузере с возможностью сортировать предупреждения и просматривать исходный код, на который анализатор выдал предупреждение.
По умолчанию утилита располагается в корневой директории анализатора. Чтобы сконвертировать отчёт, выполните в директории с json-отчётом следующую команду:
Для PowerShell:
& "C:\Program Files (x86)\PVS-Studio\PlogConverter.exe" `
-t FullHtml `
-a "GA:1,2,3;OWASP:1,2,3" `
-o . `
report.json
Для Bash:
plog-converter \
-t FullHtml \
-a GA:1,23;OWASP:1,2,3 \
-o . \
report.json
Для cmd:
"C:\Program Files (x86)\PVS-Studio\PlogConverter.exe" ^
-t FullHtml ^
-a GA:1,2,3;OWASP:1,2,3 ^
-o . ^
report.json
В результате утилита создаст директорию fullhtml, где будет лежать набор файлов, представляющих собой веб-страницу с отчётом анализатора. Для его просмотра откройте файл index.html в вашем браузере.
Дополнительные ссылки
Более подробно про работу с PVS-Studio Java через сборочные системы Gradle и Maven можно узнать в соответствующих разделах документации: