2012-08-29 8 views
18

Gibt es eine Möglichkeit, Maven irgendwie zwingen, den Build fehlschlagen, wenn es einige checkstyle Fehler gibt? Jetzt muss ich site Ziel ausführen, um javadocs und checkstyle Berichte zu generieren. Ich möchte es auf install Ziel machen und wenn checkstyle einen Fehler hat, muss ich bauen, um zu scheitern. Ist das möglich?Maven überprüfen Stil als Teil des Builds

Jetzt habe ich meine checkstyle im Berichtsblock Maven:

<reporting> 
    <plugins> 
     <plugin> 
      <groupId>org.apache.maven.plugins</groupId> 
      <artifactId>maven-checkstyle-plugin</artifactId> 
      <version>2.9.1</version> 
      <configuration> 
       <configLocation>src/test/resources/checkstyle.xml</configLocation> 
      </configuration> 
     </plugin> 
    </plugins> 
</reporting> 
+0

Haben Sie hier gesucht? http://maven.apache.org/plugins/maven-checkstyle-plugin/checkstyle-mojo.html – Eugene

Antwort

24

Sie müssen checkstyle:check auf eine Maven Lifecycle-Phase binden (z validate) und stellen failOnViolation auf true.

Etwas wie:

<plugin> 
    <groupId>org.apache.maven.plugins</groupId> 
    <artifactId>maven-checkstyle-plugin</artifactId> 
    <version>2.9.1</version> 
    <executions> 
     <execution> 
     <id>checkstyle</id> 
     <phase>validate</phase> 
     <goals> 
      <goal>check</goal> 
     </goals> 
     <configuration> 
      <failOnViolation>true</failOnViolation> 
     </configuration> 
     </execution> 
    </executions> 
</plugin> 
+0

Sie müssen entweder 'phase' oder' failOnViolation' nicht angeben, da sie auf 'validate' und' gesetzt sind true 'standardmäßig. – Jonathan

+0

@PauliusMatulionis - haben Sie sowohl einen 'code style' als auch' check style' verwendet? –

+4

@ Jonathan Checkstyle tatsächlich standardmäßig die Überprüfungsphase, nicht validieren – Noel

5

Es könnte einige Zeit, da die Frage gestellt wurde, gewesen, aber das funktionierte nicht für mich.

Für alle andere, die das gleiche Problem wie ich, mit dem Aufbau trotz einer Vielzahl von Themen nachfolgenden könnte mit fest ich es durch die violationSeverity Eigenschaft von seinem Standard error-warning im configuration Block Plugin zu senken.

0

Auch wenn es da dies eine lange Zeit gewesen war gefragt, ich habe in ein anderes Problem führen:

JavadocMethod: Unable to get class information for @throws tag 'X'.

ich dieses Problem gelöst, indem die Phase von „Validierung“ Wechsel „zum Test“, so dass checkstyle läuft nach der Kompilierphase.