如何启用checkstyle的MissingOverride检查?

时间:2018-05-21 01:40:02

标签: java maven checkstyle maven-checkstyle-plugin

我有一个

public interface Interface0 {

    void method0();
}

public class Implementation0 implements Interface0 {

    public void method0() {
        throw new UnsupportedOperationException("Not supported yet.");
    }
}

我通过声明

使用maven-checkstyle-plugin
<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-checkstyle-plugin</artifactId>
    <version>3.0.0</version>
    <executions>
        <execution>
            <id>checkstyle</id>
            <phase>validate</phase>
            <goals>
                <goal>check</goal>
            </goals>
        </execution>
    </executions>
    <configuration>
        <configLocation>${basedir}/check_style.xml</configLocation>
    </configuration>
</plugin>

最后我在MissingOverride激活check_style.xml

<?xml version="1.0"?>
<!DOCTYPE module PUBLIC
   "-//Puppy Crawl//DTD Check Configuration 1.2//EN"
   "http://www.puppycrawl.com/dtds/configuration_1_2.dtd">
<module name="Checker">
    <module name="TreeWalker">
        <module name="MissingOverride"/>
    </module>
</module>

这是我在许多项目中的经验摘要,所有检查工作正常,但MissingOverride没有效果,即没有检测到单个缺失的@Override注释。

2 个答案:

答案 0 :(得分:2)

MissingOverride模块的文档声明:

  

验证java.lang.Override注释是否存在时   {@inheritDoc}存在javadoc标记。

Documentation link

换句话说,它不打算检查您想要检查的内容 - 它只会检查Javadoc注释中{@inheritDoc}标记的使用是否与@Override注释配对。

答案 1 :(得分:1)

如果您阅读MissingOverride的Checkstyle documentation,它会声明您还需要{@inheritDoc} javadoc标记才能使其正常工作,但它只会检查它&# 39; s与另一个注释配对。

试试吧。它对我有用:)

虽然忘记包含它与原始问题相同。