Это сообщение появляется, потому что где-то в ваших двоичных классах вы ссылаетесь на этот класс. Это не обязательно означает, что FindBugs пытался проанализировать com.company.OptionalClass
, чтобы сообщить об этом; скорее, FindBugs скорее проанализировал его, чтобы получить больше информации о классе, который на него ссылается.
Рассмотрим часть вашего исходного кода, который вы хотите проанализировать:
package my.actual.codebase;
import com.some.third.party.stuff.OptionalClass;
class ReferencesOptionalClass extends OptionalClass {}
Этот тип примера является общим для тестовых классов, которые ссылаются, например, на org.junit.@Test
но банка JUnit не включена в то, что вы хотите проанализировать.
В приведенном выше примере вы хотите получить результаты для ReferenceOptionalClass
, но чтобы получить их, некоторые части FindBugs должны посмотреть на OptionalClass
. Если он не может этого сделать, потому что его там нет, он сообщает, что класс отсутствует [1]. Когда FindBugs не может найти этот класс, он, как правило, просто прерывает определенный вид анализа, который пытался выполнить, и продолжает анализ без проблем.
Простой ответ: если вас устраивает уровень анализа, который вам предоставляет FindBugs, просто игнорируйте ошибку.
[1] Обратите внимание, что вполне вероятно, что это может быть даже транзитивная ссылка, т. Е. Ваш код содержит класс A, который ссылается на B во вспомогательном JAR, который затем ссылается на OptionalClass.