Bagaimana cara menjalankan eksekusi plugin maven langsung dari baris perintah?


95

Saya memiliki plugin (antrun) dengan eksekusi yang dikonfigurasi yang memiliki id dan tidak terikat pada fase apa pun. Dapatkah saya menjalankan eksekusi ini langsung dari baris perintah?

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

Jalankan dengan sesuatu seperti:

mvn my-execution

atau setidaknya

mvn magicplugin:execute -DexecutionId=my-execution

Jawaban:


130

Fungsionalitas ini telah diimplementasikan sebagai MNG-5768 , dan tersedia di Maven 3.3.1.

Perubahan tersebut akan:

memperluas sintaks pemanggilan plugin langsung untuk mengizinkan parameter @ execution-id opsional, misalnya, org.apache.maven.plugins: maven-remote-resources-plugin: 1.0: proses @ executionId.

Jadi, dalam kasus Anda:

mvn antrun:run

menggunakan default-cliID eksekusi, dan:

mvn antrun:run@my-execution

menggunakan eksekusi yang dikonfigurasi di pom Anda.


1
Dari ID artefak "maven-antrun-plugin" bagaimana kita tahu bahwa hanya "antrun" yang harus digunakan mvn antrun:run?
mks-d

1
@ mks-d lihat pluginGroupsmengapa org.apache.maven.plugins:maven-antrun-pluginbisa disebut sebagai antrun.
Joe

1
@Joe terima kasih, di atas grup plugin tampaknya juga ada mekanisme Resolusi Awalan Plugin ...
mks-d

51

Cara paling langsung untuk menjalankan plugin maven Anda adalah dengan menentukan tujuan plugin secara langsung di baris perintah.

mvn groupId:artifactId:version:goal

Informasi lebih lanjut di: Panduan pengembangan plugin Maven


1
Tapi bagaimana saya bisa menjalankan eksekusi "default-cli"? Jika ada beberapa eksekusi dalam definisi plugin.
Anton Balashov

Saya berjuang untuk menjalankan plugin utilitas Spring Boot Jasypt, dan untuk alasan apa pun, satu-satunya cara agar saya dapat membuatnya dikenali oleh Maven adalah dengan mengikuti saran di atas. Hanya menentukan tujuan secara langsung ( mvn jasypt:encrypt ...) tidaklah cukup. Terima kasih @ dimitri-dewaele.
Mike

15

Apa yang Anda cari ditangkap di Default + Plugin + Eksekusi + ID tetapi sepengetahuan saya saat ini tidak didukung. Namun, menurut komentar MNG-3401 (baca sampai akhir):

untuk mojos yang dipanggil langsung dari baris perintah, Anda dapat menyediakan konfigurasi dari POM menggunakan executionId: 'default-cli' seperti ini:

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

Ini harus bekerja di Maven 2.2.0 dan 3.x.

Mungkin ini cukup untukmu.


Itu bukan acara pertanyaan jika jawaban Anda benar;).
Tony Chemit
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.