Maven和Findbugs集成

1.配置pom.xml

<build>
        <plugins>
            <plugin>
                <groupId>org.codehaus.mojo</groupId>
                <artifactId>findbugs-maven-plugin</artifactId>
                <version>3.0.4</version>
                <configuration>
                    <!--配置文件-->
                    <configLocation>${basedir}/findbugs-config.xml</configLocation>
                    <!--排除的BUG规则-->
                    <excludeFilterFile>custom-findbugs-exclude.xml</excludeFilterFile>
                    <!--包含的BUG规则-->
                    <includeFilterFile>custom-findbugs-include.xml</includeFilterFile>
                    <!--检查等级-->
                    <threshold>High</threshold>
                    <effort>Default</effort>
                    <!-- 输出配置 -->
                    <findbugsXmlWithMessages>true</findbugsXmlWithMessages>
                    <findbugsXmlOutput>true</findbugsXmlOutput>
                    <xmlOutput>true</xmlOutput>
                    <findbugsXmlOutputDirectory>target/site</findbugsXmlOutputDirectory>
                </configuration>
            </plugin>
        </plugins>
    </build>

custom-findbugs-exclude.xml内容:

<FindBugsFilter>
    <Match>
        <Bug pattern="DLS_DEAD_LOCAL_STORE"/>
    </Match>

    <Match>
        <Bug pattern="DM_BOXED_PRIMITIVE_FOR_PARSING"/>
    </Match>

    <Match>
        <Bug pattern="EI_EXPOSE_REP"/>
    </Match>

    <Match>
        <Bug pattern="EI_EXPOSE_REP2"/>
    </Match>

    <Match>
        <Bug pattern="ME_ENUM_FIELD_SETTER"/>
    </Match>
</FindBugsFilter>

2. 运行findbugs任务(先运行“mvn package”编译工程 )

mvn findbugs:help      
查看findbugs插件的帮助  
mvn findbugs:check      
检查代码是否通过findbugs检查,如果没有通过检查,检查会失败,但检查不会生成结果报表  
mvn findbugs:findbugs   
检查代码是否通过findbugs检查,如果没有通过检查,检查不会失败,会生成结果报表保存在target/findbugsXml.xml文件中  
mvn findbugs:gui        
检查代码并启动gui界面来查看结果  

具体fndbugs插件的配置项可以参考http://mojo.codehaus.org/findbugs-maven-plugin/findbugs-mojo.html