Spotbugs в одном файле?
Я использую плагин Spotbugs в Eclipse IDE. Я могу запустить Spotbugs для всего проекта, и у меня сложилось впечатление, что инструмент должен создать проект для представления его аналитического отчета.
Но в документации сказано, что это инструмент статического анализа.
Итак, мне было любопытно, если для этого потребуется построить проект, то можем ли мы назвать его инструментом статического анализа? И если для сборки проекта не требуется, можем ли мы запускать Spotbugs для отдельных файлов.java?
2 ответа
Да, поскольку SpotBugs анализирует байт-код (файлы.class), вы должны сначала создать проект (по крайней мере, часть, которую вы хотите проанализировать).
После этого вы можете анализировать только один файл, например, в IntelliJ IDEA (все еще плагин FindBugs, но SpotBugs может делать все, что мог FindBugs, та же самая база кода):
Смысл статического анализа заключается в том, что он анализирует файлы вашего проекта "в состоянии покоя", а не отслеживает работающее приложение. https://en.wikipedia.org/wiki/Static_program_analysis
Анализ байт-кода имеет как сильные, так и слабые стороны по сравнению с анализом исходного кода. Это быстрее и лучше подходит для глубокого анализа потока программ, но не позволяет обнаруживать ошибки, которые компилируются, например, ненужный импорт и непоследовательные, но юридические пробелы.
Вы не можете правильно запустить его для одного файла, даже если вы скомпилировали этот файл, потому что есть детекторы, которые учитывают несколько файлов, например, обнаружение, когда вы пытаетесь передать null
к методу, параметры которого помечены как ненулевые, или когда вы определили метод как открытый, а затем никогда не вызывали его извне класса.