2013-11-21 12 views
5

Ricevo i falsi positivi di FindBugs (2.0.2) e Sonar (3.7.3) sul codice generato tramite la tessitura statica di entità JPA di EclipseLink (2.5.1). In particolare, sto vedendo più occorrenze diC'è un modo per eliminare FindBugs dalla generazione di avvisi sul codice generato dalla tessitura statica?

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

e

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

C'è un modo per eliminare questi avvertimenti per il codice generato da EclipseLink senza dover disattivare globalmente le regole o escludere l'analisi sulle entità interamente?

risposta

4

Molto buona domanda! Poiché i tuoi problemi hanno origine con FindBugs, puoi utilizzare FindBugs exclusion filters per risolvere questo problema. In particolare, dai un'occhiata all'esclusione <Method>. È possibile specificare un espressione regolare che corrisponde ai nomi dei metodi dei vostri getter e setter nelle classi di entità, come ad esempio

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

Tale file di filtro può essere utilizzato da tutte le forme di FindBugs, tra cui il plugin Eclipse e SonarQube. Ad esempio, utilizzando l'attività antecedente SonarQube, è possibile impostare la proprietà sonar.findbugs.excludesFilters nel percorso assoluto del file di esclusione FindBugs.

+0

Grazie, ha funzionato perfettamente. Sembra che Sonar 4 abbia più opzioni per la gestione delle esclusioni/pattern dalla console ma nulla di così granulare. –

Problemi correlati