2012-02-02 19 views
5

Sono nuovo di essere un esperto e un check in quindi per favore sii educato :).come smettere di costruire maven usando il checkstyle

Sono riuscito a utilizzare Maven con il plugin checkstyle e posso creare report sul mio codice. Ma quello che voglio davvero avere è che posso fermare il processo di costruzione di Maven se ci sono errori sul controllo dello stile.

Finora il mio pom.xml si presenta come di seguito:

<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> 

Come posso raggiungere il mio obiettivo qui? Il nostro team vuole avere rigorosi standard di stile di codifica, quindi devo usarlo.

risposta

5

per ottenere ciò che si desidera, è necessario utilizzare il Maven-checkstyle-plugin nel ciclo di vita di generazione in aggiunta al ciclo di vita di reporting:

<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 man, c'è un modo per stampare i risultati sulla riga di comando, piuttosto che scrivere in un file xml? – LostMohican

+1

@LostMohican: Sì, è possibile aggiungere ' true' alla sezione di configurazione per abilitare l'output della console. Per ulteriori opzioni, puoi dare un'occhiata qui: http://maven.apache.org/plugins/maven-checkstyle-plugin/check-mojo.html –

3

Si potrebbe provare a impostare il failsOnError property ad es.

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

mi rendo conto che c'è stata qualche tempo da quando questa domanda è stata posta, ma nessuna delle risposte precedenti ha risolto questo problema per me.

Affinché la costruzione di fallire sulle violazioni, ho dovuto cambiare il valore violationSeverity dalla sua impostazione predefinita error-warning nel blocco configuration, simile 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> 

Inoltre, tieni presente che abbiamo stabilito una versione leggermente modificata degli stili (definita in checkstyle.xml), basata principalmente sull'ultimo google_checks.xml. Tuttavia, affinché funzioni, è necessario aggiornare anche la dipendenza com.puppycrawl.tools.checkstyle.

Problemi correlati