2009-01-29 17 views
6

Ich habe ein Projekt, das als Maven-Abhängigkeit eine JAR-Datei hat, die eine XML-Datei enthält, in der ich meine Regeln für Checkstyle gespeichert habe. Ich dachte, es wäre in Ordnung, nur diese Konfiguration zu verwenden: <configLocation> mycheckstyle.xml </configLocation >. Mein Verständnis ist, dass die Datei auf dem Klassenpfad gesucht werden sollte und meine JAR-Datei ist eine Maven-Abhängigkeit, so dass es gefunden werden sollte, aber ich bekomme eine Ausnahme für die Ressource nicht gefunden. Irgendwelche Vorschläge? Vielen Dank im Voraus ..Maven 2 Checkstyle configLocation

kuku

Antwort

10

Versuchen Sie, Ihrer Plugin-Konfiguration einen Abhängigkeitsbereich hinzuzufügen.

Z. B.

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

Maven Checkstyle Plugin - Multimodule Configuration Siehe für weitere Informationen.

+0

Dies ist die richtige Antwort. –

+1

Das war sehr hilfreich für unser Team. Als wir feststellten, dass dies möglich war, haben wir einfach POM mit 'jar'-Verpackungen entwickelt, um unsere Checkstyle-Konfiguration zu handhaben.Jetzt ist es viel einfacher zu verwalten, Version (falls erforderlich) und teilen Sie über Projekte. – Allan

0

Wie in den Checkstyle plugin page erklärt,

configLocation:

Gibt den Speicherort der XML-Konfiguration zu verwenden.

Mögliche Werte sind ein Dateisystempfad, eine URL, oder eine Klassenpfadressource.

Ich habe nie an meinem Projekt ...

Sind Sie sicher, dass die JAR die XML-Datei enthält, in dem Classpath ist, wenn das Plugin check Start ist?

0

Ich habe einen Elternteil, der das Checkstyle-Plugin angibt und in seinem Ressourcenordner die entsprechende mycheckstyle.xml hat. Ich benutze das Maven-Assembly-Plugin, um ein Jar meines Eltern-Resource-Ordners zu erstellen und dieses Jar als eine Abhängigkeit in meinem Kind zu definieren. Wenn also das Kind das Checkstyle-Plugin + seine Konfiguration vom Elternteil erbt, sollte es die mycheckstyle.xml finden können. Ich habe die Anweisungen auf der Checkstyle-Plugin-Seite befolgt, aber es hat nicht funktioniert.

+0

Sie meinen, Sie haben, was hier erklärt: http://maven.apache.org/plugins/maven-checkstyle-plugin/examples/mu lti-modul-config.html? Können Sie Ihre ursprüngliche Post bearbeiten und einige pom.xml Informationen in sie einfügen ... – romaintaz

+0

Nein nicht genau so. Es ist kein Multi-Modul. Es ist einfach, ein Elternteil zu einem Kind zu erben. Das übergeordnete Element verfügt über das Checkstyle-Plug-in in seinem Berichtstag und das untergeordnete Element erhält es geerbt. Ich füge die Ressourcen vom Eltern als jar zum Kind hinzu, um die Konfigurationsdateien zu haben. – kukudas

0

Wenn Sie eine lokale Maven-Repository für Ihre selbst erstellte und kompilierten Schecks haben, bitte beachten Sie

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

nicht vergessen definieren, sondern auch

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

sonst die Abhängigkeit Plugin wird nur schauen in central maven repo aber nicht finden Sie Ihre lokale JAR-Datei mit Ihren Check-Klassen

Verwandte Themen