Как включить проверку MissingOverride в checkstyle? - PullRequest
0 голосов
/ 21 мая 2018

У меня есть

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>

и, наконец, я 'm Activating MissingOverride in 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 голосов
/ 21 мая 2018

Если вы читаете документацию Checkstyle для MissingOverride, в нем говорится, что вам также понадобится тег {@inheritDoc} javadoc, чтобы он работал, но он только проверит, что он связан сдругая аннотация.

Попробуйте это.Это работает для меня:)

Хотя, забыть включить это будет так же, как ваша первоначальная проблема.

0 голосов
/ 21 мая 2018

Документация модуля MissingOverride гласит:

Проверяет, присутствует ли аннотация java.lang.Override , когда присутствует тег javadoc {@inheritDoc}.

Ссылка на документацию

Другими словами, он не предназначен для проверки того, что вы хотите проверить - он только проверяет,использование тега {@inheritDoc} в комментарии Javadoc связано с аннотацией @Override.

...