2010-08-25 4 views
15

Ich verwende das CheckStyle-Plugin für Eclipse.Wie unterdrücke ich Warnungen in CheckStyle?

Es ist großartig Dinge zu finden, die ich nicht 99% der Zeit vorhatte, aber die 1% der Zeit, die ich eigentlich wissentlich gegen eine Regel verstoßen wollte, möchte ich CheckStyle wissen lassen, dass es sich nicht darum kümmern muss eine Warnung anzeigen.

Beispiel: Die Javadoc-Kommentarregel fehlt. Die meiste Zeit möchte ich, dass Javadoc meine Methoden kommentiert. Eine Methode wie:

public boolean isValid() { 
    return valid; 
} 

kann wahrscheinlich ohne eins kommen.

Gibt es etwas wie die @SuppressWarnings Annotation, mit der eine bestimmte CheckStyle-Regelverletzung als akzeptabel markiert werden kann? Eine Art speziell formatierter Kommentar, vielleicht? Ich möchte die Regel nicht deaktivieren, ich möchte nur einen bestimmten Verstoß ignorieren.

(Ich realisiere in diesem Fall könnte ich nur den Javadoc Kommentar schreiben, aber in anderen Fällen die Regelverletzung zu beheben ist nicht so einfach).

+3

Siehe http://stackoverflow.com/questions/1704430/is-there-a-way-to-force-checkstyle-to-ignore-particular-warning-in-the-source-cod –

+2

Siehe http://stackoverflow.com/questions/4023185/how-to-disable-a-particular-checkstyle-rule-for-a-particular-line-of-code was ich denke, ist eigentlich nützlicher als die akzeptierte Antwort ist klarer und gründlicher – chrisbunney

Antwort

2

Scheint ziemlich langweilig, aber es muss explizite XML-Konfiguration geben, um es zu ignorieren. Sie können wahrscheinlich eine GUI dafür finden, indem Sie das Checkstyle-Plugin für Eclipse oder Netbeans verwenden. Das Beispiel, das ich gefunden habe, ist auf der Checkstyle configuration Seite.

<?xml version="1.0"?> 

<!DOCTYPE suppressions PUBLIC 
    "-//Puppy Crawl//DTD Suppressions 1.1//EN" 
    "http://www.puppycrawl.com/dtds/suppressions_1_1.dtd"> 

<suppressions> 
    <suppress checks="JavadocStyleCheck" 
       files="AbstractComplexityCheck.java" 
       lines="82,108-122"/> 
    <suppress checks="MagicNumberCheck" 
       files="JavadocStyleCheck.java" 
       lines="221"/> 
</suppressions> 
+10

Ich rate davon ab, diese Methode zu verwenden, da nachfolgende Änderungen in den referenzierten Klassen die Zeilennummern ändern würden, was zu einem Wartungsalbtraum führen würde. Ändern Sie besser die Einstellungen für Warnungen, die wir abfangen wollen oder nicht, oder verwenden Sie CHECKSTYLE: OFF/CHECKSTYLE: ON Kommentare. – stivlo

2

Die Synthese wies auf die Checkstyle-Konfigurationsseite hin. Skimming es, fand ich SuppressWithNearbyCommentFilter, die vielversprechend scheint, es sei denn, ich missverstanden seinen Zweck ...

5

PhiLho ist richtig - SuppressWithNearbyCommentFilter oder SuppressionCommentFilter kann helfen. Ich habe SuppressionCommentFilter konfiguriert und das Hinzufügen der Kommentare "CHECKSTYLE: OFF" und "CHECKSTYLE: ON" deaktiviert den Prüfstil vorübergehend.

+0

Können Sie ein Beispiel für die Verwendung dieser Kommentare hinzufügen? Gehen sie einfach in Standardeinzeilungskommentare, können sie mit mehrzeiligen Kommentaren arbeiten, oder was ist mit dem Mischen und Vergleichen des Kommentartyps für den OFF- und ON-Kommentar? – chrisbunney

+2

Ah, vergiss, ich fand diese Antwort: http://StackOverflow.com/a/4023351/110255 – chrisbunney