我們部分產(chǎn)品中發(fā)現(xiàn)Findbugs檢查有以下錯(cuò)誤:
Type MS_SHOULD_BE_FINAL
This static field public but not final, and could be changed by malicious code or by accident from another package. The field could be made final to avoid this vulnerability.
這個(gè)類型的錯(cuò)誤屬于設(shè)計(jì)上不夠嚴(yán)謹(jǐn),但由于歷史代碼修改比較多,所以我們可以對(duì)這個(gè)錯(cuò)誤告警進(jìn)行過(guò)濾。
具體方法如下:
增加一個(gè)過(guò)濾文件
我這里命名為:findbugs-exclude.xml
<FindBugsFilter>
<Match>
<Bug pattern="MS_SHOULD_BE_FINAL" />
</Match>
</FindBugsFilter>
修改pom.xml
在findbugs中增加配置:
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>findbugs-maven-plugin</artifactId>
<version>3.0.4</version>
<configuration>
<excludeFilterFile>findbugs-exclude.xml</excludeFilterFile>
</configuration>
</plugin>
現(xiàn)在這個(gè)問(wèn)題就不會(huì)再告警了。
不過(guò),我們還是要嚴(yán)謹(jǐn)?shù)膶?duì)待Findbugs和PMD提醒我們的問(wèn)題。