Come eseguire l'esecuzione del plugin Maven direttamente dalla riga di comando?


93

Ho un plugin (antrun) con un'esecuzione configurata che ha un id e non è vincolata a nessuna fase. Posso eseguire questa esecuzione direttamente dalla riga di comando?

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

E eseguilo con qualcosa del tipo:

mvn my-execution

o quantomeno

mvn magicplugin:execute -DexecutionId=my-execution

Risposte:


128

Questa funzionalità è stata implementata come MNG-5768 ed è disponibile in Maven 3.3.1.

La modifica:

estendere la sintassi di 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, nel tuo caso:

mvn antrun:run

utilizza l' default-cliID di esecuzione e:

mvn antrun:run@my-execution

usa l'esecuzione configurata nel tuo pom.


1
Dall'ID artefatto "maven-antrun-plugin" come facciamo a sapere che è solo "antrun" che dovrebbe essere usato mvn antrun:run?
mks-d

1
@ mks-d vedi pluginGroupsperché org.apache.maven.plugins:maven-antrun-pluginpuò essere indicato come antrun.
Joe

1
@ Joe grazie, oltre ai gruppi di plug-in c'è anche il meccanismo di risoluzione del prefisso del plug-in apparentemente ...
mks-d

49

Il modo più diretto per eseguire il tuo plugin Maven è specificare l'obiettivo del plugin direttamente sulla riga di comando.

mvn groupId:artifactId:version:goal

Maggiori informazioni su: Guida allo sviluppo per i plugin Maven


1
Ma come posso eseguire esattamente l'esecuzione "default-cli"? Se sono presenti più esecuzioni nella definizione del plug-in.
Anton Balashov,

Stavo lottando per far funzionare un plug-in di utilità Spring Boot Jasypt e, per qualsiasi motivo, l'unico modo in cui potevo farlo riconoscere da Maven era seguire il consiglio sopra. Il solo fatto di specificare l'obiettivo direttamente ( mvn jasypt:encrypt ...) non era sufficiente. Grazie @ dimitri-dewaele.
Mike

15

Quello che stai cercando è catturato in Default + Plugin + Execution + IDs ma per quanto ne so attualmente non è supportato. Tuttavia, secondo i commenti di MNG-3401 ( leggili fino alla fine):

per i mojo richiamati direttamente dalla riga di comando, puoi fornire la configurazione dal POM utilizzando l'ID di esecuzione: 'default-cli' in questo modo:

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

Questo dovrebbe funzionare in Maven 2.2.0 e 3.x.

Forse questo ti basterà.


quello non era esattamente l'evento domanda se la tua risposta è corretta;).
Tony Chemit
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.