使用 sonar checkstyle 插件向@SuppressWarnings 致敬

Honoring @SuppressWarnings with the sonar checkstyle plugin

是否有可能使用 Checkstyle 插件配置 SonarQube 5.1 以遵守 @SuppressWarnings("deprecation") 注释。我不想关闭 'Avoid use of deprecated methods' 规则,我只想让 SonarQube 尊重 @SuppressWarnings 注释。

我有一个 Java 代码,我需要在其中使用已弃用的 createValidator() 方法,如下所示:

@SuppressWarnings("deprecation")
@Override
public javax.xml.bind.Validator createValidator() throws JAXBException {
    return contextDelegate.createValidator();
}

Java编译器在编译代码时没有警告,但不幸的是带有CheckStyle插件的SonarQube出现问题:

squid:CallToDeprecatedMethod
Avoid use of deprecated methods

Squid是Sonar Rule的名称或编号,与checkstyle无关,所有checkstyle规则详见http://checkstyle.sourceforge.net/checks.html

乌贼是另一种野兽。正如 SonarQube docs 中所建议的,您必须使用稍微不同的语法,例如:

@SuppressWarnings("squid:CallToDeprecatedMethod")

字符串squid:CallToDeprecatedMethod是SonarQube 规则键

不幸的是,这意味着添加两个注释以有效抑制弃用警告。但是 afaik,这是禁用规则的唯一方法。