wake-up-neo.com

Eine einzelne Maven-Plugin-Ausführung ausführen?

Ich dachte, ich wäre ein erfahrener Maven-Benutzer, aber ich habe eine mentale Blockade, wie das geht!

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

Jetzt möchte ich jedoch dasselbe SQL-Plugin verwenden, um Beispieldaten einzufügen, wann immer ich dies von der Befehlszeile aus möchte - das heißt, ohne an ein Lebenszyklusziel gebunden zu sein. Es gibt ein paar verschiedene Sätze von Beispieldaten, daher möchte ich einige verschiedene Ausführungen definieren.

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

86
HDave

Wie in Wie wird die Ausführung von Maven Plugins direkt über die Befehlszeile ausgeführt? angegeben, wurde diese Funktionalität implementiert als MNG-5768 und ist in verfügbar Maven 3.3.1.

Die Änderung wird:

erweitern Sie die Aufrufsyntax des direkten Plugins, um den optionalen Parameter @ execution-id zuzulassen, z. B. org.Apache.maven.plugins: maven-remote-resources-plugin: 1.0: process @ executionId.

So lange Sie Ihrer Hinrichtung eine ID geben:

mvn sql:[email protected]

verwendet die in Ihrem POM konfigurierte Ausführung.

112
Joe

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

Nein, nicht möglich . Es ist jedoch möglich, "eine" Konfiguration zu definieren, die verwendet werden soll, wenn das Plugin über die Befehlszeile mit dem Befehl "special" default-cli Ausführungs-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>

Und rufen Sie einfach mvn sql:execute Auf.

Einzelheiten finden Sie weiter unten (aus den Maven 2.2.0 Release Notes ):

  • MNG-3401 - Ab Maven 2.2.0 können Ziele, die direkt über die Befehlszeile aufgerufen werden, im POM separat von anderen Plugin-Aufrufen mithilfe eines speziellen executionId mit dem Namen default-cli. Während zuvor alle Konfigurationen für Befehlszeilenziele in der Konfiguration auf Plug-in-Ebene ausgeführt werden mussten, können in Maven 2.2.0 befehlszeilenspezifische Konfigurationen in eigene <execution> Unterteilt werden. Weitere Informationen finden Sie im Handbuch zu Standardausführungs-IDs .
47
Pascal Thivent