2012-02-02 21 views
5

Soy nuevo en maven y checkstyle así que sea amable :).cómo detener maven build usando checkstyle

He logrado usar maven con el complemento checkstyle y puedo crear informes sobre mi código. Pero lo que realmente quiero es que pueda detener el proceso de compilación de maven si hay algún error en la verificación de estilo.

Hasta ahora mi pom.xml se parece a continuación:

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
    xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd"> 
    <modelVersion>4.0.0</modelVersion> 
    <groupId>com.company.app</groupId> 
    <artifactId>my-app</artifactId> 
    <packaging>jar</packaging> 
    <version>1.0-SNAPSHOT</version> 
    <name>my-app</name> 
    <url>http://maven.apache.org</url> 
    <dependencies> 
    <dependency> 
     <groupId>junit</groupId> 
     <artifactId>junit</artifactId> 
     <version>3.8.1</version> 
     <scope>test</scope> 
    </dependency> 
    <dependency> 
     <groupId>log4j</groupId> 
     <artifactId>log4j</artifactId> 
     <version>1.2.12</version> 
     <scope>compile</scope> 
    </dependency> 
    </dependencies> 
    <reporting> 
    <plugins> 
     <plugin> 
     <groupId>org.apache.maven.plugins</groupId> 
     <artifactId>maven-checkstyle-plugin</artifactId> 
     <version>2.8</version> 
     </plugin> 
    </plugins> 
    </reporting> 
</project> 

¿Cómo puedo alcanzar mi objetivo aquí? Nuestro equipo quiere tener estándares estrictos de estilo de codificación, así que tengo que usarlo.

Respuesta

5

Para conseguir lo que quiere, es necesario utilizar el experto-Checkstyle-plugin en el ciclo de vida de construcción, además del ciclo de vida de informes:

<project> 
... 
<build> 
... 
<plugins> 
    <plugin> 
    <groupId>org.apache.maven.plugins</groupId> 
    <artifactId>maven-checkstyle-plugin</artifactId> 
    <version>2.8</version> 
    <executions> 
     <execution> 
     <phase>process-sources</phase> 
     <goals> 
      <goal>check</goal> 
     </goals> 
     </execution> 
    </executions> 
    <configuration> 
     <failsOnError>true</failsOnError> 
    </configuration> 
    </plugin> 
</plugins> 
</build> 
</project> 
+0

thnx hombre, ¿hay alguna manera de imprimir los resultados en la línea de comandos, en lugar de escribir en un archivo xml? – LostMohican

+1

@LostMohican: Sí, puede agregar ' true' a la sección de configuración para habilitar la salida de la consola. Para obtener más opciones, puede echar un vistazo allí: http://maven.apache.org/plugins/maven-checkstyle-plugin/check-mojo.html –

3

Puede intentar configurar failsOnError property p. Ej.

<plugin> 
    <groupId>org.apache.maven.plugins</groupId> 
    <artifactId>maven-checkstyle-plugin</artifactId> 
    <version>2.8</version> 
    <configuration> 
    <failsOnError>true</failsOnError> 
    </configuration> 
    </plugin> 
5

me doy cuenta de que ha pasado algún tiempo desde se hizo esta pregunta, pero ninguna de las respuestas anteriores resolvió esto para mí.

Para que la acumulación de fracasar en violaciónes, que tenía que cambiar el valor violationSeverity de su valor predeterminado error-warning en el bloque configuration, similar a:

<plugin> 
    <artifactId>maven-checkstyle-plugin</artifactId> 
    <version>2.17</version> 
    <dependencies> 
     <dependency> 
      <groupId>com.puppycrawl.tools</groupId> 
      <artifactId>checkstyle</artifactId> 
      <version>7.5.1</version> 
     </dependency> 
    </dependencies> 
    <executions> 
     <execution> 
      <id>validate</id> 
      <phase>validate</phase> 
      <configuration> 
       <configLocation>checkstyle.xml</configLocation> 
       <encoding>UTF-8</encoding> 
       <consoleOutput>true</consoleOutput> 
       <failsOnError>false</failsOnError> 
       <failOnViolation>true</failOnViolation> 
       <violationSeverity>warning</violationSeverity> 
       <linkXRef>false</linkXRef> 
      </configuration> 
      <goals> 
       <goal>check</goal> 
      </goals> 
     </execution> 
    </executions> 
</plugin> 

Además, tenga en cuenta que hemos establecido una versión ligeramente modificada de estilos (definida en checkstyle.xml), basada principalmente en la última google_checks.xml. Sin embargo, para que esto funcione, también se debe actualizar la dependencia com.puppycrawl.tools.checkstyle.

Cuestiones relacionadas