2010-04-30 11 views
2

Je suis nouveau à maven et chekstyle, donc besoin de poser une question ... Je veux utiliser checkstyle dans mon projet basé sur Maven, donc dans mon pom.xml j'ajouter la dépendanceCheckstyle ne fonctionne pas

<dependency> 
    <groupId>checkstyle</groupId> 
    <artifactId>checkstyle</artifactId> 
    <version>2.4</version> 
</dependency> 

et aussi j'ai ajouté l'entrée dans la balise plugin:

<plugin> 
    <groupId>org.apache.maven.plugins</groupId> 
    <artifactId>maven-checkstyle-plugin</artifactId> 
    <version>2.4</version> 
    <configuration> 
    <enableRulesSummary>true</enableRulesSummary> 
    <configLocation>checkstyle.xml</configLocation> 
    </configuration> 
</plugin> 

Mais quand je lance mon Maven construire avec la commande mvn clean install, checkstyle ne fait rien. Et comme je n'ai pas encore checkstyle.xml dans mon système, ne devrait-il pas me plaindre de l'erreur?

De quoi d'autre manque-t-il?

+0

vous pouvez également jeter un oeil à [qulice-maven-plugin] (http://www.qulice.com/qulice-maven-plugin/index.html) qui combine Checkstyle, PMD, FindBugs et quelques autres analyseurs statiques, et les pré-configure – yegor256

Répondre

7

Je veux utiliser checkstyle dans mon projet basé sur Maven, donc dans mon pom.xml j'ai ajouter la dépendance (...)

Vous n'avez pas besoin d'ajouter cette dépendance, vous avez juste besoin de déclarer le plugin (un plugin déclare ses propres dépendances). (...) Mais quand je lance maven build avec la commande mvn clean install, checkstyle ne fait rien.

Oui parce que vous ne le plug-in déclarée, vous ne liait pas l'objectif check à une phase du cycle de vie, donc une accumulation normale ne déclenche pas le plug-in checkstyle. Si vous voulez que checkstyle:check soit déclenché dans le cadre de votre construction, vous devez déclarer l'objectif check dans une exécution (il se lie par défaut à la phase verify). Quelque chose comme ceci:

<plugin> 
    <groupId>org.apache.maven.plugins</groupId> 
    <artifactId>maven-checkstyle-plugin</artifactId> 
    <!-- Lock down plugin version for build reproducibility --> 
    <version>2.5</version> 
    <configuration> 
    <consoleOutput>true</consoleOutput> 
    <configLocation>checkstyle.xml</configLocation> 
    ... 
    </configuration> 
    <executions> 
    <execution> 
     <goals> 
     <goal>check</goal> 
     </goals> 
    </execution> 
    </executions> 
</plugin> 

Maintenant, appelant une phase comprenant verify invoqueront checkstyle.

Et comme je n'ai pas encore de checkstyle.xml dans mon système, ne devrait-il pas me plaindre de l'erreur?

Il sera ... lorsqu'il est appelé (soit explicitement par mvn checkstyle:check ou dans le cadre de la construction si vous modifiez votre configuration comme suggéré).