2010-09-23 15 views
71

Pensavo di essere un utente esperto di Maven, ma sto avendo un blocco mentale su come farlo!Esegui una singola esecuzione del plugin Maven?

Sono stato in grado di utilizzare il plugin Maven sql per eliminare, creare e installare uno schema in un database tramite le estensioni dei plug-in che ho definito e associato alla fase pre-integration-test.

Tuttavia, ora mi piacerebbe utilizzare lo stesso plug-in di SQL per inserire alcuni dati di esempio ogni volta che voglio dalla riga di comando, cioè non associato a nessun obiettivo del ciclo di vita. Esistono alcuni set diversi di dati di esempio, quindi mi piacerebbe definire alcune esecuzioni diverse.

Ma c'è un modo per eseguire una di queste esecuzioni dalla riga di comando utilizzando l'ID di esecuzione, forse?

+0

possibile duplicato di [Come eseguire l'esecuzione del plugin Maven direttamente dalla riga di comando?] (Http://stackoverflow.com/questions/3166538/how-to-execute-maven-plugin-execution-directly-from-command- line) – Joe

risposta

85

Come osservato in How to execute maven plugin execution directly from command line?, questa funzionalità è stato implemented come MNG-5768, ed è disponibile in Maven 3.3.1.

Il cambiamento sarà:

estendere sintassi invocazione plug diretto per consentire @ opzionale parametri di esecuzione-id, ad esempio, org.apache.maven.plugins: Maven-remote-risorse-plugin: 1.0: processo @ executionID.

Quindi, fino a quando si dà l'esecuzione un id:

mvn sql:[email protected] 

utilizza l'esecuzione configurato nel pom.

46

Ma c'è un modo per eseguire una di queste esecuzioni dalla riga di comando utilizzando l'ID di esecuzione, forse?

No, not possible. Ciò che è possibile, anche se è quello di definire "a" di configurazione da utilizzare quando il plugin viene richiamato dalla riga di comando utilizzando il "speciale" default-cli esecuzione id:

<plugin> 
    <groupId>org.codehaus.mojo</groupId> 
    <artifactId>sql-maven-plugin</artifactId> 
    <version>1.4</version> 
    ... 
    <executions> 
    <execution> 
     <id>default-cli</id> 
     <configuration> 
     ... 
     </configuration> 
    </execution> 
    ... 
    </executions> 
</plugin> 

E semplicemente chiamare mvn sql:execute.

Vedi sotto per i dettagli (dal Maven 2.2.0 Release Notes):

  • MNG-3401 - A partire dal Maven 2.2.0, obiettivi invocati direttamente dalla riga di comando possono essere configurati in POM separatamente dal altri plugin invocazioni utilizzando uno speciale executionId chiamato default-cli. Dove precedenza, tutte le configurazioni per fini riga di comando dovevano andare in la configurazione a livello plugin Maven 2.2.0 permette configurazioni-specifiche della linea di comando per essere separati in propria <execution>. Per ulteriori informazioni su , vedere Guide to Default Execution IDs.
+1

Scommetto che potresti ottenere quello che vuoi usando due profili diversi –

+4

Questa risposta è ormai superata con le versioni correnti di Maven. Vedi la risposta fornita da @Joe – Noremac

Problemi correlati