2010-09-23 6 views
71

Ich dachte, ich wäre ein erfahrener Maven-Benutzer, aber ich habe eine mentale Blockade, wie man das macht!Führen Sie eine einzelne Maven-Plugin-Ausführung aus?

Ich konnte das Maven sql Plugin verwenden, um ein Schema in einer Datenbank über Plug-in-Ausführungen, die ich definiert und an die pre-integration-test-Phase gebunden habe, zu löschen, zu erstellen und zu installieren.

Allerdings würde ich gerne das gleiche sql-Plugin verwenden, um einige Beispieldaten einzufügen, wann immer ich will von der Kommandozeile - das ist nicht an irgendein Lebenszyklusziel gebunden. Es gibt ein paar verschiedene Beispieldatensätze, daher möchte ich einige verschiedene Ausführungen definieren.

Aber gibt es eine Möglichkeit, eine dieser Ausführungen über die Befehlszeile auszuführen, möglicherweise mithilfe der Ausführungs-ID?

+0

mögliche Duplikate von [Wie Maven Plugin-Ausführung direkt von der Kommandozeile ausführen?] (Http://stackoverflow.com/questions/3166538/how-to-execute-maven-plugin-execution-directly-from-command- Linie) – Joe

Antwort

85

Wie in How to execute maven plugin execution directly from command line? erwähnt, diese Funktionalität implemented als MNG-5768 war und ist in Maven 3.3.1 zur Verfügung.

Die Änderung wird:

direkte Plugin Invokationssyntax erweitern, um optional @ Ausführungs-id Parameter, zB org.apache.maven.plugins zu erlauben: Maven-Remote-Ressourcen-Plugin: 1,0: Prozess @ Ausführungs-ID.

Also, solange Sie Ihre Ausführung eine ID geben:

mvn sql:[email protected] 

verwendet die Ausführung in Ihrem pom konfiguriert.

46

Aber gibt es eine Möglichkeit, eine dieser Ausführungen über die Befehlszeile auszuführen, möglicherweise mithilfe der Ausführungs-ID?

Nein, not possible. Was möglich ist, ist jedoch „a“ Konfiguration zu definieren, verwendet werden, wenn das Plugin von der Kommandozeile aufgerufen wird, um die „spezielle“ default-cli Ausführungs-ID mit:

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

Und einfach mvn sql:execute nennen.

siehe unten für Einzelheiten (vom Maven 2.2.0 Release Notes):

  • MNG-3401 - Ab Maven 2.2.0, direkt von den Befehlszeilen aufgerufen Ziele können separat im POM so konfiguriert werden, von andere Plugin Aufrufe mit einer speziellen executionId namens default-cli. Wo zuvor alle Konfigurationen für Kommandozeilenziele in der Plug-level-Konfiguration gehen mussten, ermöglicht Maven 2.2.0 die Trennung von command-line-spezifischen Konfigurationen in eigenen <execution>. Weitere Informationen finden Sie unter Guide to Default Execution IDs.
+1

Ich wette, Sie könnten erreichen, was Sie wollen, indem Sie zwei verschiedene Profile verwenden –

+4

Diese Antwort ist jetzt veraltet mit aktuellen Versionen von Maven. Siehe die Antwort von @Joe – Noremac

Verwandte Themen