2009-07-20 12 views
5

Ho bisogno di installare i plugin Maven. Ho scaricato i JAR. Qualcuno può dirmi cosa devo fare per integrare o impostare i plugin con Maven? Devo copiare i JAR nella directory superiore o devo modificare un file?Integrare i plugin di segnalazione Maven

I plugin sono:

  • pacchetti java2html
  • JDepend
  • Checkstyle
  • Clover
  • COBERTURA
  • EMMA
  • Findbugs
  • JavaNCSS
  • PMD
  • QALab
  • Xradar
  • Sonar
+0

Non dovresti aver bisogno sia di Emma che di Cobertura, sono entrambi strumenti di copertura del codice e potrebbero essere in conflitto. –

+0

... e avrai abbastanza lavoro per mantenere felice un maestro senza aggiungerne un altro :) – Crowie

risposta

0

Non è necessario scaricare i plugin manualmente. Io non sono sicuro al 100%, ma se si desidera utilizzare, ad esempio il plugin checkstyle, è necessario iniziare con Maven riga di comando sotto forma di parametro checkstyle

qualcosa di simile:

mvn checkstyle:checkstyle 

o

mvn checkstyle:check 

edit1: Ma è anche possibile inserire i contenitori nel repository m2 locale con la struttura di cartelle specifica per accedervi.

edit2: puoi mettere tutti i tuoi plugin nel tuo repository e poi devi dire a maven (usando il pom), quali repository vuoi usare. Ogni plugin deve essere descritto nel pom.

1

Sirakov ha ragione; Maven scaricherà e installerà automaticamente i plugin quando vengono utilizzati.

È possibile eseguirli direttamente (per lavori one-off) o configurarli nel pom.xml - questo consente anche di configurarli e impostare l'esecuzione automatica, ad esempio, per generare codice sorgente o riferire sulla copertura del test. Un grande vantaggio di questo è che puoi definire un singolo set di configurazioni di plugin in una finestra principale condivisa, e riutilizzare le stesse configurazioni attraverso tutti i tuoi progetti, mentre sei ancora in grado di sovrascrivere la configurazione ereditata in ogni sottoprogetto dove necessario - questo è uno dei maggiori vantaggi dell'utilizzo di Maven in progetti di grandi dimensioni.

Ogni plug-in ha i propri parametri di configurazione, quelli standard sono documentati allo http://maven.apache.org/plugins/. Un'altra buona risorsa è il libro O'Reilly Maven, online su http://www.sonatype.com/books/maven-book/reference/

un esempio di configurazione per cobertura:

<plugin> 
    <groupId>org.apache.maven.plugins</groupId> 
    <artifactId>maven-pmd-plugin</artifactId> 
    <version>2.3</version> 
    <configuration> 
     <outputDirectory>${project.build.directory}/pmd</outputDirectory> 
     <targetDirectory>${project.build.directory}</targetDirectory> 
     <aggregate>true</aggregate> 
     <!-- CPD minimum tokens to report on (5 to 10 duplicate lines) --> 
     <minimumTokens>100</minimumTokens> 
     <minimumPriority>3</minimumPriority> 
     <!-- Exclude mock classes  --> 
     <excludes> 
     <exclude>**/Mock.*</exclude> 
     <exclude>**/Dummy.*</exclude> 
     <exclude>**/*Mock.java</exclude> 
     <exclude>**/*Dummy.java</exclude> 
     </excludes> 
     <includeTests>true</includeTests> 
     <targetJdk>1.5</targetJdk> 
     <rulesets> 
      <ruleset>pmd_ruleset.xml</ruleset> 
     </rulesets> 
    </configuration> 
</plugin> 
13

Se Maven ha accesso al repository centrale verrà scaricato la maggior parte dei plug-in (alcuni non sono ospitati su centrale, per accedere a quelli che è necessario definire un repository aggiuntivo nel pom o nelle impostazioni). Se le dipendenze sono configurate nel POM, Maven tenterà automaticamente di scaricarle quando si esegue un obiettivo rilevante. Per le dipendenze che hai elencato questo è mvn site.

La maggior parte di quei vasi che hai elencato sono i rapporti, quindi dovrebbe essere dichiarato nel segnalazione sezione del POM, per esempio (vorrei anche dichiarare le versioni per essere sicuro che stai ricevendo il plugin atteso) :

<reporting> 
    <plugins> 
    <plugin> 
     <artifactId>maven-checkstyle-plugin</artifactId> 
    </plugin> 
    <plugin> 
     <artifactId>maven-pmd-plugin</artifactId> 
     <configuration> 
     <linkXref>true</linkXref> 
     </configuration> 
    </plugin> 
    <plugin> 
     <groupId>org.codehaus.mojo</groupId> 
     <artifactId>cobertura-maven-plugin</artifactId> 
     <version>2.1</version> 
     <configuration> 
     <formats> 
      <format>html</format> 
      <format>xml</format> 
     </formats> 
     <outputDirectory>target/site/cobertura</outputDirectory> 
     </configuration> 
    </plugin> 
    <plugin> 
     <artifactId>maven-surefire-report-plugin</artifactId> 
     <configuration> 
     <outputDirectory>${basedir}/target/surefire-reports</outputDirectory> 
     </configuration> 
    </plugin> 
    <plugin> 
     <groupId>org.codehaus.mojo</groupId> 
     <artifactId>jdepend-maven-plugin</artifactId> 
    </plugin> 
    <plugin> 
     <groupId>org.codehaus.mojo</groupId> 
     <artifactId>findbugs-maven-plugin</artifactId> 
     <configuration> 
     <xmlOutput>true</xmlOutput> 
     <effort>Max</effort> 
     </configuration> 
    </plugin> 
    </plugins> 
</reporting> 

Alcuni retroscena sul modello di esecuzione dei plugin di Maven: Quando si esegue sito mvn, questo è l'abbreviazione di mano per "Run l'obiettivo sito da l'ultima versione del plugin sito", vale a dire che è equivalente a sito mvn: sito, che è a sua volta stenografia per org.apache.maven.plugins MVN: Maven-site-plugin: ULTIME: sito

Maven tenterà di contattare il repository centrale, determinare la versione più recente dal Maven-metadata.xml, poi scaricarlo (e tutte le sue dipendenze che mancano anche) prima di eseguirlo.

Se si è dietro un proxy è possibile visualizzare un messaggio di errore nel log di compilazione in questo modo:

[INFO] The plugin 'org.apache.maven.plugins:maven-site-plugin' does not exist or no valid version could be found 

per affrontare questo è possibile dichiarare le impostazioni proxy nel settings.xml Maven (in [MVN_HOME]/conf/settings.xml). Essi sono commentate da defualt, ma guarda qualcosa di simile:

<proxy> 
    <id>optional</id> 
    <active>true</active> 
    <protocol>http</protocol> 
    <username>proxyuser</username> 
    <password>proxypass</password> 
    <host>proxy.host.net</host> 
    <port>80</port> 
    <nonProxyHosts>local.net,some.host.com</nonProxyHosts> 
</proxy> 

Sostituire nome utente, password, host e valori di porta con il rilevante per l'ambiente e Maven sarà in grado di scaricare le dipendenze richieste.

Per ulteriori dettagli sull'uso di Maven, controlla lo Maven: The Definitive Guide di Sonatype, è online e gratuito.

+0

@RichSeller La guida definitiva non è più un collegamento diretto (o almeno il tuo fornito è inattivo). Prova questo: http://www.sonatype.com/resources/books – Crowie