Saya menggunakan Eclipse 3.7 Indigo dengan Maven M2E Plugin 1.0.100.
Menggunakan arketipe JBoss 7.x JavaEE 6 EAR, pom untuk EAR memberi saya kesalahan ini:
Eksekusi plugin tidak tercakup oleh konfigurasi siklus hidup: org.apache.maven.plugins: maven-ear-plugin: 2.6: generate-application-xml (eksekusi: default-generate-application-xml, phase: generate-resources)
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-ear-plugin</artifactId>
<version>2.6</version>
<configuration>
<!-- Tell Maven we are using Java EE 6 -->
<version>6</version>
<!-- Use Java EE ear libraries as needed. Java EE ear libraries
are in easy way to package any libraries needed in the ear, and automatically
have any modules (EJB-JARs and WARs) use them -->
<defaultLibBundleDir>lib</defaultLibBundleDir>
<modules></modules>
</configuration>
<plugin>
sumber
target
folder. Anda tidak ingin hal itu dilakukan kembali "secara bertahap" setelah menyimpan setiap file sumber. Atau mungkin Anda memang menginginkannya. Sungguh, m2e tidak tahu tentang bangunan spesifik Anda. Anda dapat menyimpan apa yang harus dilakukan m2e di Eclipse, POM, atau mungkin memasang konektor m2e yang menambahkan lebih banyak pengetahuan ke m2e untuk menangani langkah build. Ini adalah opsi yang harus Anda lihat. Saya mengerti Anda tidak ingin membuat POM m2e-aware Anda, tetapi ini adalah tempat yang bagus untuk mengkonfigurasi ini secara terpusat untuk semua devs Anda.bagaimanapun sudah terlambat tetapi solusi saya sederhana klik kanan pada pesan kesalahan di Eclipse dan pilih Perbaiki Cepat >> Abaikan untuk setiap pom dengan kesalahan seperti itu
sumber
Eclipse memiliki konsep incremental builds. Ini sangat berguna karena menghemat banyak waktu.
Bagaimana ini Berguna
Katakanlah Anda baru saja mengubah satu file .java. Pembangun inkremental akan dapat mengkompilasi kode tanpa harus mengkompilasi ulang semuanya (yang akan memakan waktu lebih lama).
Sekarang apa masalahnya dengan Plugin Maven
Sebagian besar plugin maven tidak dirancang untuk build tambahan dan karenanya menimbulkan masalah bagi m2e. m2e tidak tahu apakah tujuan plugin adalah sesuatu yang penting atau tidak relevan. Jika itu hanya mengeksekusi setiap plugin ketika satu file berubah, itu akan memakan banyak waktu.
Inilah alasan mengapa m2e bergantung pada informasi metadata untuk mengetahui bagaimana eksekusi harus ditangani. m2e telah memberikan opsi berbeda untuk memberikan informasi metadata ini dan urutan preferensi adalah seperti di bawah ini (tertinggi ke terendah)
1,2 mengacu pada bagian pluginManagement yang menentukan di tag file pom Anda atau orang tuanya. M2E membaca konfigurasi ini untuk mengkonfigurasi proyek. Potongan di bawah menginstruksikan m2e untuk mengabaikan
jslint
dancompress
tujuan yuicompressor-maven-plugin3) Jika Anda tidak suka mencemari file pom Anda dengan metadata ini, Anda dapat menyimpannya dalam file XML eksternal (opsi 3). Di bawah ini adalah contoh file pemetaan yang menginstruksikan m2e untuk mengabaikan
jslint
dancompress
tujuan yuicompressor-maven-plugin4) Jika Anda tidak menyukai salah satu dari 3 opsi ini, Anda dapat menggunakan konektor m2e (ekstensi) untuk plugin maven. Konektor pada gilirannya akan memberikan metadata ke m2e. Anda dapat melihat contoh informasi metadata dalam konektor di link ini . Anda mungkin telah memperhatikan bahwa metadata mengacu pada konfigurator. Ini berarti m2e akan mendelegasikan tanggung jawab ke kelas java tertentu yang disediakan oleh pembuat ekstensi. Konfigurator dapat mengkonfigurasi proyek (seperti misalnya menambahkan folder sumber tambahan dll) dan memutuskan apakah akan mengeksekusi plugin maven yang sebenarnya selama build tambahan (jika tidak dikelola dengan benar dalam konfigurator, ini dapat menyebabkan pembangunan proyek tanpa akhir)
Lihat link berikut untuk contoh konfigurator ( link1 , link2 ). Jadi jika plugin adalah sesuatu yang dapat dikelola melalui konektor eksternal, maka Anda dapat menginstalnya. m2e menyimpan daftar konektor semacam itu yang dikontribusikan oleh pengembang lain. Ini dikenal sebagai katalog penemuan. m2e akan meminta Anda untuk memasang konektor jika Anda belum memiliki metadata pemetaan siklus hidup untuk eksekusi melalui salah satu opsi (1-6) dan katalog penemuan memiliki beberapa ekstensi yang dapat mengelola eksekusi.
Gambar di bawah ini menunjukkan bagaimana m2e meminta Anda menginstal konektor untuk plugin build-helper-maven. .
5) m2e mendorong pembuat plugin untuk mendukung incremental build dan menyediakan pemetaan siklus hidup di dalam maven-plugin itu sendiri. Ini berarti bahwa pengguna tidak perlu menggunakan pemetaan atau konektor siklus hidup tambahan. Beberapa penulis plugin telah menerapkan ini
6) Secara default m2e menyimpan metadata pemetaan siklus hidup untuk sebagian besar plugin yang umum digunakan seperti maven-compiler-plugin dan banyak lainnya.
Sekarang kembali ke pertanyaan: Anda mungkin dapat memberikan pemetaan siklus hidup abaikan dalam 1, 2 atau 3 untuk tujuan spesifik yang menimbulkan masalah bagi Anda.
sumber
Solusi yang baik untuk mengingatkan Anda bahwa m2e dapat dikonfigurasi dengan lebih baik, tanpa proyek yang mewarisi penanda kesalahan positif palsu, adalah dengan menurunkan versi kesalahan tersebut ke peringatan:
Jendela -> Preferensi -> Maven -> Kesalahan / Peringatan -> Eksekusi plugin tidak tercakup oleh konfigurasi siklus hidup = Peringatan
sumber
Saya mencoba menjalankan penyumbatan khusus setelah pembersihan yaitu pasca-bersih (default adalah fase bersih). Ini berhasil untuk saya dengan eclipse indigo. Baru saja menambahkan pasca-pembersihan menyelesaikan masalah bagi saya.
sumber
phase
dangoal
untukexecution
di pom.xml yang diberikan kepada saya, dan saya masih mendapatkan kesalahan.Saya dapat menyelesaikan masalah yang sama dengan maven-antrun-plugin dan jaxb2-maven-plugin di Eclipse Kepler 4.3 dengan menerapkan solusi ini: http://wiki.eclipse.org/M2E_plugin_execution_not_covered#Eclipse_4.2_add_default_mapping
Jadi konten% saya elipse_workspace_name% /. metadata / .plugins / org.eclipse.m2e.core / lifecycle-mapping-metadata.xml adalah sebagai berikut:
* Harus memulai ulang Eclipse untuk melihat kesalahan hilang.
sumber
Mulai Maven Eclipse (m2e) versi 0.12, semua tujuan siklus hidup Maven harus dipetakan ke ekstensi m2e yang terpasang. Dalam hal ini, tujuan
maven-ear-plugin
memiliki tujuan yang belum dipetakandefault-generate-application-xml
.Anda dapat mengecualikan tujuan siklus hidup yang tidak dipetakan hanya dengan mengikuti petunjuk di sini:
https://wiki.eclipse.org/M2E_plugin_execution_not_covered
Atau, cukup klik kanan pada pesan kesalahan di Eclipse dan pilih
Quick Fix
->Ignore for every pom with such errors
.Anda harus berhati-hati saat mengabaikan tujuan siklus hidup: biasanya tujuan melakukan sesuatu yang berguna dan jika Anda mengonfigurasinya untuk diabaikan di Eclipse, Anda mungkin melewatkan langkah-langkah pembuatan yang penting. Anda mungkin juga ingin mempertimbangkan untuk menambahkan dukungan ke ekstensi Maven Eclipse EAR untuk tujuan siklus hidup yang belum dipetakan.
sumber
Dengan mekanisme yang dijelaskan dalam jawaban Jan, saya telah menginstruksikan m2e pluging untuk mengabaikan tujuan "generate-application-xml". Ini menghilangkan kesalahan dan tampaknya berfungsi sejak m2e membuat application.xml.
Jadi pada dasarnya error tersebut memaksa kita untuk memutuskan mekanisme mana yang bertanggung jawab untuk menghasilkan application.xml ketika build Maven berjalan di dalam Eclipse di bawah kendali plugin m2e. Dan kami telah memutuskan bahwa m2e yang bertanggung jawab.
sumber
Anda perlu memahami konten di M2E_plugin_execution_not_covered dan ikuti langkah-langkah yang disebutkan di bawah ini:
<ignore/>
bawah<action>
.misalnya: untuk kesalahan tulis-proyek-properti, tambahkan cuplikan ini di bawah
<pluginExecutions>
bagian file lifecycle-mapping-metadata.xml:Anda seharusnya tidak melihat kesalahan di masa mendatang untuk proyek apa pun.
sumber
Meskipun pertanyaannya terlalu lama, tetapi saya ingin membagikan solusi yang berhasil untuk saya karena saya sudah memeriksa semuanya terkait kesalahan ini. Itu menyakitkan, saya menghabiskan dua hari mencoba dan pada akhirnya solusinya adalah:
perbarui plugin M2e di eclipse
bersihkan dan bangun kembali
sumber