2010-02-17 6 views
7

J'utilise checkstyle plugin dans maven 2. Je veux maintenant changer mon fichier de configuration, de celui par défaut à a) un fichier en ligne, ou b) un fichier local. J'ai essayé les deux choses suivantes, qui n'ont pas fonctionné. Aucune suggestion?Maven 2 checkstyle plugin version 2.5 - Problème avec configLocation

A) fichier local, qui est directement dans mon dossier de projet à côté du pom.xml

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

B) de fichiers à distance, qui est stocké sur un serveur

<plugin> 
    <groupId>org.apache.maven.plugins</groupId> 
    <artifactId>maven-checkstyle-plugin</artifactId> 
    <configuration> 
     <configLocation>http://stud.hs-heilbronn.de/~nischmid/development/checkstyle-config.xml</configLocation> 
    </configuration> 
</plugin> 

Les deux cas le résultat dans une erreur pareil:

Toute aide serait appréciée!

Répondre

6

Je l'ai vu plusieurs questions liées à configLocation dans Jira avec la version 2.5 du plugin (comme MCHECKSTYLE-129 ou MCHECKSTYLE-131), à la fois a) et b) fonctionnent très bien avec la version 2.4.

Donc, à moins que vous utilisez Maven 3, je suggère rollback à 2,4 pour l'instant:

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

ou

<plugin> 
    <groupId>org.apache.maven.plugins</groupId> 
    <artifactId>maven-checkstyle-plugin</artifactId> 
    <version>2.4</version> 
    <configuration> 
    <configLocation>http://stud.hs-heilbronn.de/~nischmid/development/checkstyle-config.xml</configLocation> 
    </configuration> 
</plugin> 

Comme une note de côté, pour un module multi-construire, jetez un oeil à la Multimodule Configuration.

+0

Remonter à la version 2.4 a résolu le problème a), mais le problème b) résiste. J'ai suivi les instructions données dans MCHECKSTYLE-129 qui a résolu le problème b). J'ai donc checkstyle plugin version 2.5 avec plexus-resources 1.0-alpha-7-SNAPSHOT et tout fonctionne bien. Merci Pascal! –

+0

@Nils Bizarre, j'ai testé b) avec votre URL et cela a fonctionné pour moi avec 2.4. Quoi qu'il en soit, si vous avez résolu le problème avec la version 2.5 en ajoutant la dépendance plexus-resources, c'est bien :) –

5

J'ai essayé d'utiliser la version 3.0.1 du plugin Checkstyle et trouvé configLocation n'a aucun effet. J'ai essayé l'approche ci-dessus, mais toujours pas de chance.

En résumé, la réponse ci-dessus fonctionne probablement, mais vous devrez peut-être définir une propriété checkstyle.config.location.

En utilisant -X pour obtenir une sortie de débogage, je vis:

[DEBUG] (f) configLocation = config/sun_checks.xml 

Scrolling plus en arrière dans le journal, il semble que configLocation n'est pas défini:

<configLocation default-value="config/sun_checks.xml">${checkstyle.config.location}</configLocation> 

Sur la base de ce message, Je définis la propriété dans le global <properties> comme suit:

<checkstyle.config.location>${basedir}/config/checkstyle-configuration.xml</checkstyle.config.location> 

Cela a fonctionné, mais a provoqué l'exception du plugin. Après quelques recherches sur Google, j'ajouté ce qui suit dans le fichier de configuration checkstyle:

<module name="Checker"> 
    ... 
    <module name="TreeWalker"> 
    ... 
    <property name="cacheFile" value=""/> 

Pour être complet, la dernière étape est venu de la Jira suivante, marquée comme résolue à 2,8. La différence est qu'il semble fonctionner avec une valeur vide, évitant ainsi la nécessité de mettre en place une ${cachefile} propriété:

http://jira.codehaus.org/browse/MCHECKSTYLE-159

+0

J'ai dû mettre "file: //" devant. fichier: // $ {basedir} /config/checkstyle-configuration.xml

1

Peut-être utile pour quelqu'un d'autre qui a besoin de trouver encore une solution de contournement. Par ailleurs, j'ai eu le même problème et le fichier est supposé être recherché dans /classes/.xml ou dans les dossiers d'ici.Mais comme il est à la recherche directement après le dossier du projet i inclus

<configuration> 
<configLocation>src\main\resources\checkstyle-checker-dev.xml</configLocation> 
</configuration> 

Note: configLocation a L caps

vous pouvez également définir une variable globale dans l'environnement et l'utilisation ici Note: Ceci est seulement une solution de contournement, il doit fonctionner comme indiqué dans les lignes ci-dessus.