为什么findbugs分析我告诉它不要的课程?

时间:2014-05-09 16:41:21

标签: java maven findbugs

我正在使用findbugs maven插件。这是我的配置的样子:

        <plugin>
            <groupId>org.codehaus.mojo</groupId>
            <artifactId>findbugs-maven-plugin</artifactId>
            <version>2.5.3</version>
            <configuration>
                <includeTests>true</includeTests>
                <includeFilterFile>findbugs-include.xml</includeFilterFile>
                <debug>true</debug>
            </configuration>
            <executions>
                <execution>
                    <phase>test-compile</phase>
                    <goals>
                        <goal>check</goal>
                    </goals>
                </execution>
                <execution>
                    <id>findbugs-test-compile</id>
                    <phase>test-compile</phase>
                    <goals>
                        <goal>check</goal>
                    </goals>
                </execution>
            </executions>
        </plugin>

这是我的findbugs-include.xml:

<?xml version="1.0" encoding="UTF-8"?>
<FindBugsFilter>
    <Match>
        <!-- these come from http://findbugs.sourceforge.net/bugDescriptions.html -->
        <Bug pattern="NP_NONNULL_FIELD_NOT_INITIALIZED_IN_CONSTRUCTOR,NP_NONNULL_PARAM_VIOLATION,NP_NONNULL_RETURN_VIOLATION,NP_NULL_PARAM_DEREF,NP_NULL_PARAM_DEREF_ALL_TARGETS_DANGEROUS,NP_NULL_PARAM_DEREF_NONVIRTUAL,NP_STORE_INTO_NONNULL_FIELD,NP_METHOD_RETURN_RELAXING_ANNOTATION,NP_PARAMETER_MUST_BE_NONNULL_BUT_MARKED_AS_NULLABLE"/>
        <Package name="~com.company.app.*"/>
    </Match>
</FindBugsFilter>

但是在maven控制台中,当我打开调试时,它有这样的行:

 [java] Added 3 referenced classes
 [java] Total of 71 packages
 [java]   com/company/app/client/FooBar
 [java]   java/util/HashMap

为什么那个hashmap在那里?这不是我告诉它要查看的软件包的一部分。

我应该注意这是一个多模块项目,这个插件是在我的root pom中定义的。我的findbugs-include.xml与我的root pom位于同一个文件夹中。它似乎正在读取文件并且<Bug>元素正常工作,因为如果我注释掉,我的构建很早就会失败。我只是不明白为什么它注意到我的项目之外的类,如java/util/HashMap

也许我只是误解了日志记录。但确实这样说:

 [java] Pass 1: Analyzing classes (20 / 1048) - 01% complete     209 usecs/byte     210 msec    1002 bytes  0 pass com/company/app/client/CreateOrUpdateProceduresResponse     6 0/2  20/1048 java/util/HashMap
 [java] Applying edu.umd.cs.findbugs.detect.NoteSuppressedWarnings to java/util/HashMap
 [java] Applying edu.umd.cs.findbugs.detect.FindBugsSummaryStats to java/util/HashMap
 [java] Applying edu.umd.cs.findbugs.detect.OverridingEqualsNotSymmetrical to java/util/HashMap
 [java] Applying edu.umd.cs.findbugs.detect.EqualsOperandShouldHaveClassCompatibleWithThis to java/util/HashMap
 [java] Applying edu.umd.cs.findbugs.detect.FieldItemSummary to java/util/HashMap
 [java] Applying edu.umd.cs.findbugs.detect.FunctionsThatMightBeMistakenForProcedures to java/util/HashMap
 [java] Applying edu.umd.cs.findbugs.detect.NoteAnnotationRetention to java/util/HashMap
 [java] Applying edu.umd.cs.findbugs.detect.NoteDirectlyRelevantTypeQualifiers to java/util/HashMap
 [java] Applying edu.umd.cs.findbugs.detect.BuildObligationPolicyDatabase to java/util/HashMap
 [java] Applying edu.umd.cs.findbugs.detect.NoteJCIPAnnotation to java/util/HashMap
 [java] Applying edu.umd.cs.findbugs.detect.Methods to java/util/HashMap
 [java] Applying edu.umd.cs.findbugs.detect.ReflectiveClasses to java/util/HashMap
 [java] Applying edu.umd.cs.findbugs.detect.CalledMethods to java/util/HashMap
 [java] Applying edu.umd.cs.findbugs.detect.NoteCheckReturnValueAnnotations to java/util/HashMap
 [java] Applying edu.umd.cs.findbugs.detect.NoteNonNullAnnotations to java/util/HashMap
 [java] Applying edu.umd.cs.findbugs.detect.ExplicitSerialization to java/util/HashMap

添加<onlyAnalyze>com.company.app.-</onlyAnalyze>没有任何区别。

0 个答案:

没有答案