2009-01-29 6 views
6

J'ai un projet qui a comme dépendance maven un fichier jar qui comprend un fichier xml où j'ai stocké mes règles pour checkstyle. Je pensais que ce serait correct d'utiliser simplement cette configuration: <configLocation> mycheckstyle.xml/configLocation >. Ma compréhension est que le fichier doit être recherché sur le classpath et mon fichier jar est une dépendance Maven donc il devrait être trouvé, mais je reçois une exception de ressource non trouvée. Aucune suggestion? Merci d'avance ..Maven 2 Checkstyle configLocation

Kuku

Répondre

10

Par ex,

<plugin> 
    <groupId>org.apache.maven.plugins</groupId> 
    <artifactId>maven-checkstyle-plugin</artifactId> 
    <dependencies> 
     <dependency> 
     <groupId>com.example.whizbang</groupId> 
     <artifactId>build-tools</artifactId> 
     <version>1.0</version> 
     </dependency> 
    </dependencies> 
    </plugin> 

Voir Maven Checkstyle Plugin - Multimodule Configuration pour plus d'informations.

+0

Ceci est la bonne réponse. –

+1

Cela a été très utile pour notre équipe. Une fois que nous avons réalisé que c'était possible, nous avons créé un simple POM avec un empaquetage 'jar' juste pour gérer notre configuration de checkstyle.Maintenant, il est beaucoup plus facile à gérer, version (si nécessaire), et partager à travers les projets. – Allan

0

Comme cela est expliqué dans le Checkstyle plugin page,

configLocation:

Indique l'emplacement de la configuration XML à utiliser.

Les valeurs potentielles sont un chemin de système de fichiers, une URL, ou une ressource de chemin de classe.

Je ne l'ai fait sur mon projet ...

Êtes-vous sûr que le JAR contenant le fichier XML est dans le classpath lorsque le plugin checkstyle commence?

0

J'ai un parent qui spécifie le plugin checkstyle et a dans son dossier de ressources le mycheckstyle.xml approprié. J'utilise le plugin maven assembly pour créer un dossier jar de mes parents et définir ce jar comme une dépendance de mon enfant. Ainsi, lorsque l'enfant hérite du plugin checkstyle + sa configuration du parent, il devrait pouvoir trouver mycheckstyle.xml. J'ai suivi les instructions sur la page du plugin checkstyle mais cela n'a pas fonctionné. Essayez d'ajouter une section de dépendances à la configuration de votre plugin.

+0

Vous voulez dire que vous avez fait ce qui est expliqué ici: http://maven.apache.org/plugins/maven-checkstyle-plugin/examples/mu lti-module-config.html? Pouvez-vous éditer votre message initial et y mettre des informations pom.xml ... – romaintaz

+0

Non, pas exactement comme ça. Ce n'est pas un module multiple. C'est l'héritage simple d'un parent à un enfant. Le parent a le plugin checkstyle dans sa balise de rapport et l'enfant hérite. J'ajoute les ressources du parent comme jar à l'enfant pour avoir les fichiers de configuration. – kukudas

0

Si vous avez un repository local pour vos chèques et compilé auto-créé, s'il vous plaît être conscient de ne pas oublier la définition

<repositories> 
    <repository> 
     <id>my local repository</id> 
     <url>file:${basedir}/.m2artifacts</url> 
    </repository> 
    <!-- ... --> 
</repositories> 

mais aussi

<pluginRepositories> 
    <pluginRepository> 
     <id>my local repository</id> 
     <url>file:${basedir}/.m2artifacts</url> 
    </pluginRepository> 
    <!-- ... --> 
</pluginRepositories> 

sinon la dépendance du plugin il suffit de regarder dans le repo maven central mais ne trouvera pas votre fichier JAR local avec vos check-classes

Questions connexes