Jak wykonać uruchomienie wtyczki maven bezpośrednio z wiersza poleceń?

96

Mam wtyczkę (antrun) ze skonfigurowanym wykonaniem, która ma identyfikator i nie jest związana z żadną fazą. Czy mogę wykonać to wykonanie bezpośrednio z wiersza poleceń?

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

Uruchom go za pomocą czegoś takiego:

mvn my-execution

Lub przynajmniej

mvn magicplugin:execute -DexecutionId=my-execution
artemb
źródło

Odpowiedzi:

131

Ta funkcjonalność została zaimplementowana jako MNG-5768 i jest dostępna w Maven 3.3.1.

Zmiana będzie:

rozszerzyć składnię bezpośredniego wywołania wtyczki, aby umożliwić opcjonalny parametr @ identyfikator-wykonania, np. org.apache.maven.plugins: maven-remote-resources-plugin: 1.0: process @ ExecutionId.

A więc w twoim przypadku:

mvn antrun:run

używa default-cliidentyfikatora wykonania i:

mvn antrun:run@my-execution

używa wykonania skonfigurowanego w Twoim pom.

Joe
źródło
1
Na podstawie identyfikatora artefaktu „maven-antrun-plugin” skąd wiemy, że należy użyć tylko elementu „antrun” mvn antrun:run?
mks-d
1
@ mks-d zobacz, pluginGroupsdlaczego org.apache.maven.plugins:maven-antrun-pluginmożna nazywać antrun.
Joe
1
@Joe dzięki, oprócz grup wtyczek jest też mechanizm rozpoznawania prefiksów wtyczek najwyraźniej ...
mks-d
52

Najbardziej bezpośrednim sposobem wykonania wtyczki maven jest określenie celu wtyczki bezpośrednio w wierszu poleceń.

mvn groupId:artifactId:version:goal

Więcej informacji: Przewodnik programowania dla wtyczek Maven

Dimitri Dewaele
źródło
1
Ale jak mogę uruchomić dokładnie wykonanie „default-cli”? Jeśli w definicji wtyczki jest kilka wykonań.
Anton Balashov
Walczyłem o uruchomienie wtyczki narzędzia Spring Boot Jasypt iz jakiegoś powodu jedynym sposobem, w jaki mogłem ją rozpoznać przez Mavena, było postępowanie zgodnie z powyższą radą. Samo określenie celu bezpośrednio ( mvn jasypt:encrypt ...) nie wystarczyło. Dzięki @ dimitri-dewaele.
Mike
15

To, czego szukasz, jest przechwytywane w domyślnych + wtyczkach + wykonywaniu + identyfikatorach, ale według mojej wiedzy obecnie nie jest obsługiwane. Jednak zgodnie z komentarzami MNG-3401 (przeczytaj je do końca):

w przypadku mojo wywoływanych bezpośrednio z wiersza poleceń, możesz podać konfigurację z POM za pomocą executionId: 'default-cli' w następujący sposób:

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

Powinno to działać w Maven 2.2.0 i 3.x.

Może to ci wystarczy.

Pascal Thivent
źródło
to nie było dokładnie zdarzenie pytanie, jeśli twoja odpowiedź jest poprawna;).
Tony Chemit