2016-05-09 15 views
4

Ich habe eine Eclipse-Plugin-Codebase, die mit Tycho erstellt. Es verwendet ein Eltern-POM, das in einem abhängigen Artefakt definiert ist, das den Namen der Checkstyle-Konfiguration angibt.Maven Checkstyle und Eclipse Checkstyle melden ähnliche aber unterschiedliche Ergebnisse mit der gleichen Konfigurationsdatei

Ich habe auch die Eltern Pom mit der Checkstyle-Konfiguration ausgecheckt. Ich habe Eclipse so konfiguriert, dass es dieselbe Konfigurationsdatei verwendet wie der Maven-Build.

Ich finde, dass der Maven-Bericht einen anderen Verstoß auflistet, den der Eclipse-Bericht nicht erwähnt.

In der speziellen Java-Quelldatei an Ich bin auf der Suche, der Maven-Bericht diese Liste erzeugt:

3: warning: Empty line should be followed by <p> tag on the next line. 
8: warning: 'package' should be separated from previous statement. 
26: warning: First sentence should be present. 
31: warning: First sentence should be present. 
34: warning: First sentence should be present. 
48: warning: First sentence should be present. 

Für die gleiche Quelldatei, die gleiche Checkkonfigurationsdatei verwenden, berichtet von Eclipse alle, aber der ersten Warnung .

Wenn es darauf ankommt, ist hier die ersten paar Zeilen der Datei, einschließlich Zeile 3:

/******************************************************************************* 
* Copyright (c) 2014, 2015 Cisco Systems, Inc. and others. All rights reserved. 
* // line 3 
* This program and the accompanying materials are made available under the 
* terms of the Eclipse Public License v1.0 which accompanies this distribution, 
* and is available at http://www.eclipse.org/legal/epl-v10.html 
*******************************************************************************/ 

Ironischerweise kann ich nicht „reparieren“ diese Warnung, weil unser Projekt zur Zeit ein bestimmtes Format festgelegt für Die Lizenzdatei und das Hinzufügen des "p" in der nächsten Zeile verletzt dieses Format.

In jedem Fall behebt mein Problem nicht die Warnung, es versteht, warum Eclipse und Maven unterscheiden in welche Verletzungen sie berichten, die gleiche Checkstyle Konfigurationsdatei verwendend.

Von dem, was ich verstehe, ist die Kategorie, die mit dieser Verletzung verbunden ist, "JavadocParagraph". Meine Checkstyle-Konfigurationsdatei enthält diese Kategorie, überschreibt jedoch nicht die Eigenschaft "allowNewlineParagraph". Angeblich ist der Standardwert für diese Eigenschaft wahr. Das bedeutet für mich, dass Maven irgendwie entscheidet, dass diese Eigenschaft auf "false" gesetzt ist, aber Eclpse sieht immer noch den nicht spezifizierten Standardwert "true".

+1

Welche Version des Maven Checkstyle Plugins verwenden Sie? Ist es 2,16 oder älter? –

+0

Ja, 2.16. Und wenn es darauf ankommt, Version 6.16.0.201603042321 des Eclipse Checkstyle Plug-Ins. –

Antwort

2

Es scheint, dass Sie in einen Versionskonflikt geraten sind. Das Maven Checkstyle Plugin 2.16 basiert auf Checkstyle 6.2, während Ihr Eclipse Plugin mit Checkstyle 6.16.1 (source) das neueste ist.

Es wird einige Änderungen an die JavadocParagraph Prüfung (wie this one in 6.2), die in der Eclipse-Plugin vorhanden sein würden, aber nicht in der Maven-Version.

Also, Sie 3 Möglichkeiten, dies zu beheben:

  1. Aktualisieren Sie das Maven Plugin 2.17 - Dies scheint die einfachste zu sein, aber Sie werden immer noch auf verschiedenen Versionen, so dass Sie in anderen Problemen führen kann die Zukunft.
  2. Downgrade das Eclipse-Plugin auf eine Version 6.2.x - das würde funktionieren, aber Sie mit einer ziemlich alten Version von Checkstyle verlassen.
  3. Die Checkstyle-Version explizit angeben (empfohlen). Sie würden also weiterhin das neueste Checkstyle-Plugin für Eclipse verwenden, aber Maven so konfigurieren, dass es dieselbe Version von Checkstyle verwendet (instructions).
+0

danke für die Klärung ..Also wirklich, das bedeutet, dass wenn man das Eclipse Checkstyle Plugin verwendet, es am besten ist, manuell sicherzustellen, dass seine Version und die Version des Checkstyle Kerns, die im Maven Build verwendet werden, immer gleich sind? siehe https://sourceforge.net/p/eclipse-cs/feature-requests/158/ – vorburger

+0

Genau! Und da Maven und Gradle bereits die Funktion haben, die Sie für Eclipse-CS angefordert haben, können wir das derzeit tun. –

Verwandte Themen