我有一个
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
注释。
答案 0 :(得分:2)
MissingOverride
模块的文档声明:
验证java.lang.Override注释是否存在时 {@inheritDoc}存在javadoc标记。
换句话说,它不打算检查您想要检查的内容 - 它只会检查Javadoc注释中{@inheritDoc}
标记的使用是否与@Override
注释配对。
答案 1 :(得分:1)
如果您阅读MissingOverride
的Checkstyle documentation,它会声明您还需要{@inheritDoc}
javadoc标记才能使其正常工作,但它只会检查它&# 39; s与另一个注释配对。
试试吧。它对我有用:)
虽然忘记包含它与原始问题相同。