Eseguire una singola esecuzione del plugin Maven?


98

Pensavo di essere un utente esperto di Maven, ma ho un blocco mentale su come farlo!

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

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

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


Risposte:


137

Come indicato in Come eseguire l'esecuzione di plug-in Maven direttamente dalla riga di comando? , questa funzionalità è stata implementata come MNG-5768 ed è disponibile in Maven 3.3.1.

La modifica:

estendere la sintassi dell'invocazione diretta del plug-in per consentire il parametro @ execution-id opzionale, ad esempio, org.apache.maven.plugins: maven-remote-resources-plugin: 1.0: process @ executionId.

Quindi, a patto di fornire un ID alla tua esecuzione:

mvn sql:execute@specific-execution-id

usa l'esecuzione configurata nel tuo pom.


È fantastico :)
GabrielBB

49

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

No, non è possibile . Quello che è possibile però è definire "una" configurazione da utilizzare quando il plugin viene richiamato dalla riga di comando utilizzando l' default-cliid di esecuzione "speciale" :

<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 chiama mvn sql:execute.

Vedi sotto per i dettagli (dalle note di rilascio di Maven 2.2.0 ):

  • MNG-3401 - A partire da Maven 2.2.0, gli obiettivi richiamati direttamente dalla riga di comando possono essere configurati nel POM separatamente dalle altre chiamate di plug-in utilizzando un'apposita executionIdchiamata default-cli. Laddove in precedenza, tutte le configurazioni per gli obiettivi della riga di comando dovevano andare nella configurazione a livello di plug-in, Maven 2.2.0 consente di separare le configurazioni specifiche della riga di comando nelle proprie <execution>. Per ulteriori informazioni, vedere la Guida agli ID di esecuzione predefiniti .

1
Scommetto che potresti ottenere ciò che desideri utilizzando due profili diversi
Daniel Kaplan

4
Questa risposta è ora obsoleta con le attuali versioni di Maven. Vedi la risposta fornita da @Joe
Noremac
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.