2013-11-21 12 views
5

Ich bekomme, was ich denke, sind falsch positive Ergebnisse von FindBugs (2.0.2) und Sonar (3.7.3) auf Code, der durch statisches Weben von EclipseLink (2.5.1) JPA-Entitäten generiert wird. Insbesondere ich mehrere Vorkommen vonGibt es eine Möglichkeit, FindBugs davon abzuhalten, Warnungen auf Code zu generieren, der durch statisches Weben erzeugt wird?

ES_COMPARING_PARAMETER_STRING_WITH_EQ 
Comparison of String parameter using == or != in com.test.domain.MyEntity._persistence_set(String, Object) 

und

URV_INHERITED_METHOD_WITH_RELATED_TYPES 
Inherited method com.test.domain.MyEntity._persistence_get(String) returns more specific type of object than declared 

Gibt es eine Möglichkeit, diese Warnungen für den Code von Eclipse erzeugt zu beseitigen sehe, ohne die Regeln global mit deaktivieren oder Analyse auf den Entitäten ausschließen vollständig?

Antwort

4

Sehr gute Frage! Da Ihre Probleme von FindBugs stammen, können Sie FindBugs exclusion filters verwenden, um dies zu beheben. Schauen Sie sich speziell den <Method> Ausschluss an. Sie können einen regulären Ausdruck angeben, die die Methode Namen Ihrer Getter und Setter in den Entitätsklassen entspricht, wie

<Method name="~_persistence_[gs]et" /> 

Eine solche Filterdatei kann von allen Formen von FindBugs verwendet werden, einschließlich der Eclipse-Plugin und Sonarqube. Wenn Sie beispielsweise den SonarQube-Ant-Task verwenden, können Sie die Eigenschaft sonar.findbugs.excludesFilters auf den absoluten Pfad zur FindBugs-Ausschlussdatei festlegen.

+0

Danke, das hat perfekt funktioniert. Es sieht so aus, als ob Sonar 4 mehr Möglichkeiten zum Verwalten von Ausschlüssen/Mustern von der Konsole bietet, aber nichts so granulares wie dieses. –