2016-07-29 41 views
5

używam pluginuGenerics języka Java Checkstyle: "?" nie jest poprzedzone spacją

<artifactId>maven-checkstyle-plugin</artifactId> 
<version>2.17</version> 

Ma 6.11.2 wersję Checkstyle. Konfiguracja mówią o whitespaces jest:

<module name="NoWhitespaceAfter"> 
    <property name="severity" value="error" /> 
    <property name="tokens" value="ARRAY_INIT,BNOT,DEC,DOT,INC,LNOT" /> 
</module> 
<module name="NoWhitespaceBefore"> 
    <property name="severity" value="error" /> 
</module> 
<module name="RedundantModifier"> 
    <property name="severity" value="error" /> 
</module> 
<module name="WhitespaceAround"> 
    <property name="severity" value="error" /> 
    <property name="tokens" value="ASSIGN,BAND,BAND_ASSIGN,BOR,BOR_ASSIGN,BSR,BSR_ASSIGN,BXOR,BXOR_ASSIGN,COLON,DIV,DIV_ASSIGN,DO_WHILE,EQUAL,GE,LAND,LCURLY,LE,LITERAL_ASSERT,LITERAL_CATCH,LITERAL_DO,LITERAL_ELSE,LITERAL_FINALLY,LITERAL_FOR,LITERAL_IF,LITERAL_RETURN,LITERAL_SYNCHRONIZED,LITERAL_TRY,LITERAL_WHILE,LOR,MINUS,MINUS_ASSIGN,MOD,MOD_ASSIGN,NOT_EQUAL,PLUS,PLUS_ASSIGN,RCURLY,SL,SLIST,SL_ASSIGN,SR,SR_ASSIGN,STAR,STAR_ASSIGN,TYPE_EXTENSION_AND" /> 
</module> 

zawsze uzyskać ten błąd:

(whitespace) WhitespaceAround: WhitespaceAround: '?' is not preceded with whitespace. 
(whitespace) WhitespaceAround: WhitespaceAround: '?' is not followed by whitespace. 
Empty blocks may only be represented as {} when not part of a multi-block statement (4.1.3) 

fragmenty kodu są:

Class<?>[] groups() default {}; 
Class<? extends Payload>[] payload() default {}; 

próbowałem usunąć fragment z whitespaces, ale wciąż ten sam błąd.

Czy ktoś ma ten sam problem?

Wielkie dzięki!

+0

Czy możesz udostępnić fragment, który powoduje ten błąd? – Mureinik

+1

To wygląda jak dziwacznie agresywna zasada "WhitespaceAround". – user2357112

+0

@Mureinik to dobre miejsce. Zaktualizowałem pytanie. –

Odpowiedz

4

Jest błąd w Checkstyle, został on rozwiązany w Checkstyle 6.14 (patrz https://github.com/checkstyle/checkstyle/issues/2633)

Można uaktualnić Checkstyle dodając sekcję <dependencies> w maven-Checkstyle-plugin:

<plugin> 
    <groupId>org.apache.maven.plugins</groupId> 
    <artifactId>maven-checkstyle-plugin</artifactId> 
    <version>2.17</version> 
    <dependencies> 
     <dependency> 
      <groupId>com.puppycrawl.tools</groupId> 
      <artifactId>checkstyle</artifactId> 
      <version>6.14</version> 
     </dependency> 
    </dependencies> 
</plugin> 

Or możesz przejść od razu do najnowszego Checkstyle (7.0).

+0

to nie pomaga. Wersja 6.14 nadal otrzymuje ten sam błąd. Wersja 7.x wymaga Java 8, ale w naszym projekcie korzystamy z JDK 7. Jakieś inne pomysły? –

+0

wypróbowałeś inne wersje> 6.14 i <7.0? –

+0

I to jest dość dziwne, ponieważ powinno mieć poprawkę dla twojego dokładnego przypadku. –