Doğrudan komut satırından maven eklentisi çalıştırma nasıl yapılır?


98

Kimliği olan ve herhangi bir aşamaya bağlı olmayan bir yürütme yapılandırılmış bir eklentim (antrun) var. Bu yürütmeyi doğrudan komut satırından yürütebilir miyim?

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

Şunun gibi bir şeyle çalıştırın:

mvn my-execution

ya da en azından

mvn magicplugin:execute -DexecutionId=my-execution

Yanıtlar:


135

Bu işlevsellik edilmiş uygulanan olarak MNG-5768 ve Maven 3.3.1 mevcuttur.

Değişiklik:

isteğe bağlı @ execution-id parametresine izin vermek için doğrudan eklenti çağırma sözdizimini genişletin, örneğin, org.apache.maven.plugins: maven-remote-resources-plugin: 1.0: process @ executionId.

Öyleyse, senin durumunda:

mvn antrun:run

default-cliyürütme kimliğini kullanır ve:

mvn antrun:run@my-execution

pom'unuzda yapılandırılan yürütmeyi kullanır.


2
"Maven-antrun-eklenti" yapıt kimliğinden, kullanılması gereken şeyin sadece "antrun" olduğunu nasıl biliyoruz mvn antrun:run?
mks-d

1
@ mks-d pluginGroupsneden org.apache.maven.plugins:maven-antrun-pluginolarak anılabileceğini görün antrun.
Joe

1
@Joe teşekkürler, eklenti gruplarının üstünde, görünüşe göre Eklenti Önek Çözünürlük mekanizması da var ...
mks-d

55

Maven eklentinizi çalıştırmanın en doğrudan yolu, eklenti hedefini doğrudan komut satırında belirlemektir.

mvn groupId:artifactId:version:goal

Daha fazla bilgi için: Maven eklentileri için geliştirme kılavuzu


1
Ama tam olarak "default-cli" yürütmeyi nasıl çalıştırabilirim? Eklenti tanımında birkaç yürütme varsa.
Anton Balashov

Bir Spring Boot Jasypt yardımcı programı eklentisini çalıştırmak için savaşıyordum ve her ne sebeple olursa olsun, onu Maven tarafından tanınmanın tek yolu yukarıdaki tavsiyelere uymaktı. Sadece hedefi doğrudan belirtmek ( mvn jasypt:encrypt ...) yeterli değildi. @ Dimitri-dewaele teşekkürler.
Mike

Belirli bir yürütmeyi yürütmek için sorulan soru; cevabınız bir hedef için yapılandırılmış tüm uygulamaları çalıştıracaktır.
toolforger

15

Aradığınız şey Default + Plugin + Execution + ID'lerde kaydedilmiş ancak bildiğim kadarıyla şu anda desteklenmiyor. Ancak MNG-3401'in yorumlarına göre (sonuna kadar okuyun):

doğrudan komut satırından çağrılan mojolar için, aşağıdaki gibi executionId: 'default-cli' kullanarak POM'dan yapılandırma sağlayabilirsiniz:

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

Bu, Maven 2.2.0 ve 3.x'te çalışmalıdır.

Belki bu senin için yeterli olacaktır.


Cevabınız doğruysa bu tam olarak soru olayı değildi;).
Tony Chemit
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.