Domanda

Sto usando plug-in checkstyle Maven 2. Ora voglio cambiare il mio file di configurazione, da quella predefinita ad a) un file on-line, oppure b) un file locale. Ho provato le seguenti due cose, che lavorano entrambi di poco. Qualche suggerimento?

A) File locale, che è direttamente nella mia cartella del progetto accanto al pom.xml

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

B) file remoto, che viene memorizzato sul server

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

In entrambi i casi si traducono in un errore come questo:

  

[INFO] è verificato un errore in   la generazione di report Checkstyle. Incorporato   di errore: Impossibile durante checkstyle   esecuzione Impossibile trovare risorse   'File: checkstyle.xml'.

Qualsiasi aiuto sarebbe apprezzato!

È stato utile?

Soluzione

Ho visto diverse questioni relative alla configLocation in Jira con la versione 2.5 del plugin (come MCHECKSTYLE-129 o MCHECKSTYLE-131 ), sia a) e b) solo funzionano bene con la versione 2.4.

Quindi, a meno che non si sta utilizzando Maven 3, suggerisco di rollback a 2.4 per ora:

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

o

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

Come nota a margine, per un multi-moduli costruire, hanno uno sguardo al multimodulo Configurazione .

Altri suggerimenti

Ho cercato di utilizzare la versione 3.0.1 del plugin Checkstyle e trovato configLocation non ha alcun effetto. Ho provato l'approccio di cui sopra, ma ancora senza fortuna.

In sintesi, la risposta di cui sopra probabilmente non lavoro, ma potrebbe essere necessario impostare una checkstyle.config.location proprietà.

Utilizzando -X per ottenere output di debug, ho visto:

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

Lo scorrimento più indietro nel registro, sembra configLocation non è stato impostato:

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

In base a quel messaggio, ho impostato la proprietà nella <properties> globale come segue:

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

Questo ha funzionato, ma ha causato il plugin per un'eccezione. Dopo un po 'Googling, ho aggiunto il seguente al file di configurazione checkstyle:

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

Per completezza, l'ultimo passo è venuto dal seguente Jira, contrassegnato come risolto in 2.8. La differenza è che sembra funzionare con un valore vuoto, evitando la necessità di impostare una proprietà ${cachefile}:

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

Forse utile per qualcun altro che ha bisogno di trovare ancora una soluzione. Tra l'altro ho avuto lo stesso problema e il file è supponiamo di essere cercato in /classes/.xml o cartelle da qui. Ma dal momento che guarda direttamente dopo la cartella di progetto ho incluso

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

Nota: configLocation ha caps L

Inoltre è possibile definire una variabile globale in ambiente e l'uso qui Nota:. Questa è solo una soluzione, ha bisogno di lavorare come indicato nelle linee sopra

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top