В случае, если вы используете findbugs-maven-plugin и вам необходимо сохранить поле, и это поле является классом, не реализующим интерфейс Serializable, например поле, которое имеет класс, определенный в третьей стороне.Вы можете вручную настроить файл исключения для findbugs,
Если это единственный случай, добавьте его в файл исключения: pom:
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>findbugs-maven-plugin</artifactId>
<version>3.0.3</version>
<configuration>
<xmlOutput>true</xmlOutput>
<xmlOutputDirectory>target/findbugs/</xmlOutputDirectory>
<excludeFilterFile>findbugs-exclude.xml</excludeFilterFile>
<includeFilterFile>findbugs-include.xml</includeFilterFile>
<failOnError>true</failOnError>
</configuration>
...
exclude.xml:
<?xml version="1.0" encoding="UTF-8"?>
<FindBugsFilter>
<Match>
<Class name="com.xxx.Foo" />
<Field type="org.springframework.statemachine.StateMachineContext"/>
</Match>
Entity:
@Entity
public class Foo extends Boo {
StateMachineContext<A, B> stateMachineContext;
Хотя я не понимаю, почему добавление <Bug category="SE_BAD_FIELD"/>
не будет работать.Кроме того, я не согласен с решением добавить аннотацию в поле, например @edu.umd.cs.findbugs.annotations.SuppressWarnings(justification="No bug", values="SE_BAD_FIELD")
, потому что инструменты построения лучше не проникают в бизнес-код. Использование подключаемых модулей maven & Фильтры findbugs включают и исключают
О SE_BAD_FIELD: непереходное непериализуемое поле экземпляра в сериализуемом классе , я думаю, что оно не должно проверять сущности.Потому что javax.persistence.AttributeConverter
предлагает методы для сериализации поля извне (реализует Serializable - внутренний метод для сериализации).