Java Checker框架似乎忽略了-AskipUses参数

Java Checker框架似乎忽略了-AskipUses参数,java,maven,checker-framework,Java,Maven,Checker Framework,我已经开始注释我的程序,编写空注释。按照指导原则,我对我的一个类进行了注释,并将其标记为@AnnotatedFor({“nullness”})。该程序是在Java 7平台下编译的,使用的是Oracle JDK 1.7.u21(由于一些技术限制,无法切换到JDK 8)。 该类使用了大量未注第三方(Google Guava)和JDK库方法,因此我在Maven编译器插件参数中包括选项-AskipUses=…,以及-AuseSafeDefaultsForUnnanotatedSourceCode,如下所

我已经开始注释我的程序,编写空注释。按照指导原则,我对我的一个类进行了注释,并将其标记为
@AnnotatedFor({“nullness”})
。该程序是在Java 7平台下编译的,使用的是Oracle JDK 1.7.u21(由于一些技术限制,无法切换到JDK 8)。 该类使用了大量未注第三方(Google Guava)和JDK库方法,因此我在Maven编译器插件参数中包括选项
-AskipUses=…
,以及
-AuseSafeDefaultsForUnnanotatedSourceCode
,如下所示:

<properties>
    <project.checker.annotatedJdk>${org.checkerframework:jdk7:jar}</project.checker.annotatedJdk>
    <project.checker.typeAnnotationsJavac>${org.checkerframework:compiler:jar}</project.checker.typeAnnotationsJavac>
</properties>

<build>
    <plugins>
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-dependency-plugin</artifactId>
            <version>2.8</version>
            <executions>
                <execution>
                    <goals>
                        <goal>properties</goal>
                    </goals>
                </execution>
            </executions>
        </plugin>

        <plugin>
            <artifactId>maven-compiler-plugin</artifactId>
            <version>3.2</version>
            <configuration>
                <source>1.7</source>
                <target>1.7</target>
                <fork>true</fork>
                <annotationProcessors>
                    <annotationProcessor>org.checkerframework.checker.nullness.NullnessChecker</annotationProcessor>
                </annotationProcessors>
                <compilerArgs>
                    <arg>-Xbootclasspath/p:${project.checker.annotatedJdk}</arg>
                    <arg>-J-Xbootclasspath/p:${project.checker.typeAnnotationsJavac}</arg>
                    <arg>-AuseSafeDefaultsForUnannotatedSourceCode</arg>
                    <arg>-AskipUses=com\.google\.common\.|java\.math</arg>
                </compilerArgs>
            </configuration>
        </plugin>
    </plugins>
</build>
带我们到38号线:

DEFAULT_SORT_ORDER = BigDecimal.valueOf(0.0);
或39:

pkg/Indicator.java:[39,52] error:     [argument.type.incompatible] incompatible types in argument.
found   : IndicatorComparator

required: Comparator<Indicator>
等等--日志中充斥着各种各样的检查错误,尽管我认为我通过使用
-AskipUses=
选项消除了这些错误

我做错什么了吗

UPD 07.12.2015:附上该类的完整源代码。
UPD 14.12.2015:更新了源代码,因此现在更容易复制案例。

您能给出一个完整的、可复制的测试案例吗?您的源代码片段不可编译,并且它不包含55行,尽管您的错误消息引用了第55行。这使得很难找到问题的根源。它还可以帮助您确定检查器是否在命令行中工作——这将表明问题出在检查器本身还是Maven集成上。报告bug的其他提示见。那么,希望有人能帮助您。@mernst为了简洁起见,我没有包括完整的源代码,因为我还描述了第55行(不是58行,我的错)。尽管如此,我还是会听从你的建议,在明天上班时更新这个问题。你的代码无法编译,因为它有不匹配的大括号。它也有350多行。你能提供一个简单的工作示例吗?谢谢@mernst我缩短了源代码(没想到会有人真的试图重现这个问题),并试图在一个独立的项目中构建它。错误是一样的。如果我在项目的pom.xml中注释行“-AuseSafeDefaultsForUnannotatedSourceCode”,编译过程似乎很好(虽然我不确定这是否适用于类型检查),但打开此选项后,我会发现上面的错误,-AskipUses并没有真正的帮助。
DEFAULT_SORT_ORDER = BigDecimal.valueOf(0.0);
pkg/Indicator.java:[39,52] error:     [argument.type.incompatible] incompatible types in argument.
found   : IndicatorComparator

required: Comparator<Indicator>
pkg/Indicator.java:[38,47] error:     [assignment.type.incompatible] incompatible types in assignment.
found   : @UnknownInitialization @Nullable BigDecimal

required: @Initialized @NonNull BigDecimal