2010-07-02 4 views
50

Ich habe ein Plugin (antrun) mit einer Ausführung konfiguriert, die eine ID hat und an keine Phase gebunden ist. Kann ich diese Ausführung direkt von der Kommandozeile ausführen?Wie maven Plugin-Ausführung direkt von der Kommandozeile ausführen?

<plugin> 
    <artifactId>maven-antrun-plugin</artifactId> 
    <executions> 
    <execution> 
     <id>my-execution</id> 
     ... 
    </execution> 
    </executions> 
</plugin> 

Ein Lauf mit so etwas wie:

mvn my-execution 

oder zumindest

mvn magicplugin:execute -DexecutionId=my-execution 

Antwort

12

Was Sie suchen in Default+Plugin+Execution+IDs erfasst wird aber meines Wissens derzeit nicht unterstützt. Doch nach den Kommentaren von MNG-3401 (sie bis zum Ende lesen):

für Mojos direkt aus der Leitung Befehls aufgerufen, können Sie Konfiguration aus dem POM mit dem ExecutionID liefern: ‚default-cli‘ wie folgt aus:

<plugin> 
    <artifactId>maven-assembly-plugin</artifactId> 
    <executions> 
    <execution> 
     <id>default-cli</id> 
     <configuration> 
     <descriptorRefs> 
      <descriptorRef>jar-with-dependencies</descriptorRef> 
      <descriptorRef>project</descriptorRef> 
     </descriptorRefs> 
     </configuration> 
    </execution> 
    </executions> 
</plugin> 

Dies sollte in Maven 2.2.0 und 3.x. arbeiten

Vielleicht wird das genug für Sie sein.

+0

, die nicht genau die Frage Ereignis war, ob Ihre Antwort richtig ist;). –

70

Diese Funktionalität wurde implemented als MNG-5768, und ist in Maven 3.3.1 verfügbar.

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 in Ihrem Fall:

mvn antrun:run 

verwendet die default-cli ID Ausführung und:

mvn antrun:[email protected] 

verwendet die Ausführung in Ihrem pom konfiguriert.

+0

Das sollte die Antwort sein, denke ich. –

9

Das direkteste Mittel zur Ausführung Ihres Maven-Plugins besteht darin, das Plugin-Ziel direkt in der Befehlszeile anzugeben.

mvn groupId:artifactId:version:goal 

Weitere Informationen unter: Development guide for Maven plugins

+1

Aber wie kann ich genau "Standard-CLI" Ausführung ausführen? Wenn es mehrere Ausführungen in der Plugin-Definition gibt. –

Verwandte Themen