Używam Eclipse 3.7 Indigo z Maven M2E Plugin 1.0.100.
Używając archetypu JBoss 7.x JavaEE 6 EAR, pom dla EAR daje mi ten błąd:
Wykonanie wtyczki nie jest objęte konfiguracją cyklu życia: org.apache.maven.plugins: maven-ear-plugin: 2.6: generowanie-aplikacji-xml (wykonanie: domyślne-generowanie-aplikacji-xml, faza: generowanie-zasobów)
<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>
źródło
target
folderu. Nie chciałbyś, aby było to powtarzane „przyrostowo” po zapisaniu każdego pliku źródłowego. A może tego chcesz. Naprawdę m2e nie ma pojęcia o twojej konkretnej wersji. Możesz przechowywać to, co m2e ma zrobić w Eclipse, POM lub ewentualnie zainstalować złącze m2e, które doda więcej wiedzy m2e do obsługi etapu kompilacji. Oto opcje, które powinieneś zobaczyć. Rozumiem, że nie chcesz, aby twój POM m2e był świadomy, ale jest to miłe miejsce do centralnej konfiguracji tego dla wszystkich twoich programistów.w każdym razie jest już za późno, ale moim rozwiązaniem było proste kliknięcie prawym przyciskiem myszy na komunikat o błędzie w Eclipse i wybranie Szybka naprawa >> Ignoruj dla każdego pom z takimi błędami
źródło
Eclipse ma koncepcję kompilacji przyrostowych, co jest niezwykle przydatne, ponieważ pozwala zaoszczędzić dużo czasu.
Jak to jest przydatne
Powiedzmy, że zmieniłeś jeden plik .java. Twórcy przyrostu będą mogli skompilować kod bez konieczności ponownej kompilacji wszystkiego (co zajmie więcej czasu).
Jaki jest problem z wtyczkami Maven
Większość wtyczek maven nie jest przeznaczona do kompilacji przyrostowych i dlatego stwarza problemy dla m2e. m2e nie wie, czy celem wtyczki jest coś kluczowego, czy też nieistotnego. Jeśli po prostu uruchomi każdą wtyczkę, gdy zmieni się pojedynczy plik, zajmie to dużo czasu.
To jest powód, dla którego m2e polega na informacjach z metadanych, aby dowiedzieć się, jak powinno być obsługiwane wykonanie. m2e wymyślił różne opcje dostarczania tych informacji metadanych, a kolejność preferencji jest jak poniżej (od najwyższej do najniższej)
1,2 odnosi się do określenia sekcji pluginManagement w tagu twojego pliku pom lub któregokolwiek z jego rodziców. M2E odczytuje tę konfigurację, aby skonfigurować projekt. Poniżej fragment kodu instruuje m2e, aby ignorował cele
jslint
icompress
wtyczki yuicompressor-maven3) Jeśli nie chcesz zanieczyszczać swojego pliku pom tymi metadanymi, możesz zapisać je w zewnętrznym pliku XML (opcja 3). Poniżej znajduje się przykładowy plik mapowania, który instruuje m2e, aby ignorował cele
jslint
icompress
wtyczki yuicompressor-maven4) Jeśli nie podoba ci się żadna z tych 3 opcji, możesz użyć złącza m2e (rozszerzenia) dla wtyczki maven, które z kolei dostarczy metadane do m2e. Możesz zobaczyć przykład informacji metadanych w łączniku pod tym linkiem . Być może zauważyłeś, że metadane odnoszą się do konfiguratora. Oznacza to po prostu, że m2e przeleje odpowiedzialność na tę konkretną klasę java dostarczoną przez autora rozszerzenia. Konfigurator może skonfigurować projekt (np. Dodać dodatkowe foldery źródłowe itp.) I zdecydować, czy wykonać właściwą wtyczkę maven podczas kompilacji przyrostowej (jeśli nieprawidłowo zarządzany w konfiguratorze, może prowadzić do niekończących się kompilacji projektów)
Skorzystaj z tych łączy, aby zapoznać się z przykładem konfiguracji ( łącze1 , łącze2 ). Jeśli więc wtyczka jest czymś, czym można zarządzać za pomocą zewnętrznego złącza, możesz ją zainstalować. m2e utrzymuje listę takich łączników dostarczoną przez innych programistów, znaną jako katalog wykrywania. m2e wyświetli monit o zainstalowanie łącznika, jeśli nie masz jeszcze żadnych metadanych mapowania cyklu życia do wykonania za pomocą dowolnej z opcji (1-6), a katalog wykrywania ma rozszerzenie, które może zarządzać wykonaniem.
Poniższy obraz pokazuje, jak m2e monituje o zainstalowanie łącznika dla wtyczki build-helper-maven-plugin. .
5) m2e zachęca autorów wtyczek do obsługi przyrostowej kompilacji i mapowania cyklu życia dostaw w samej wtyczce maven, co oznaczałoby, że użytkownicy nie będą musieli używać żadnych dodatkowych mapowań cyklu życia ani łączników. Niektórzy autorzy wtyczek już to zaimplementowali
6) Domyślnie m2e przechowuje metadane mapowania cyklu życia dla większości powszechnie używanych wtyczek, takich jak maven-compiler-plugin i wiele innych.
Wróćmy teraz do pytania: prawdopodobnie możesz po prostu podać mapowanie cyklu życia zignorowania w 1, 2 lub 3 dla tego konkretnego celu, który sprawia ci kłopoty.
źródło
Dobrym obejściem, aby przypomnieć, że m2e można lepiej skonfigurować bez dziedziczenia przez projekt znacznika błędu fałszywie dodatniego, jest po prostu obniżenie tych błędów do ostrzeżeń:
Okno -> Preferencje -> Maven -> Błędy / ostrzeżenia -> Wykonanie wtyczki nie jest objęte konfiguracją cyklu życia = Ostrzeżenie
źródło
Próbowałem wykonać określone podłączanie zaraz po czyszczeniu, tj. Po czyszczeniu (domyślnie jest to czysta faza). To zadziałało dla mnie z eclipse indigo. Właśnie dodane po czyszczeniu rozwiązało problem.
źródło
phase
i agoal
dla theexecution
w pom.xml, który został mi podany, i nadal otrzymuję błąd.Udało mi się rozwiązać ten sam problem z maven-antrun-plugin i jaxb2-maven-plugin w Eclipse Kepler 4.3, aplikując to rozwiązanie: http://wiki.eclipse.org/M2E_plugin_execution_not_covered#Eclipse_4.2_add_default_mapping
Więc zawartość mojego% elipse_workspace_name% /. metadata / .plugins / org.eclipse.m2e.core / lifecycle-mapping-metadata.xml wygląda następująco:
* Musiałem ponownie uruchomić Eclipse, aby zobaczyć, że błędy zniknęły.
źródło
Od wersji 0.12 Maven Eclipse (m2e) wszystkie cele cyklu życia Maven muszą być odwzorowane na zainstalowane rozszerzenie m2e. W tym przypadku
maven-ear-plugin
miał niezamapowany celdefault-generate-application-xml
.Możesz wykluczyć niemapowane cele cyklu życia, postępując zgodnie z instrukcjami tutaj:
https://wiki.eclipse.org/M2E_plugin_execution_not_covered
Alternatywnie, po prostu kliknij prawym przyciskiem myszy komunikat o błędzie w Eclipse i wybierz
Quick Fix
->Ignore for every pom with such errors
.Należy zachować ostrożność, ignorując cele cyklu życia: zazwyczaj cele są przydatne, a jeśli skonfigurujesz je tak, aby były ignorowane w Eclipse, możesz przegapić ważne kroki kompilacji. Możesz również rozważyć dodanie obsługi rozszerzenia Maven Eclipse EAR dla niezamapowanego celu cyklu życia.
źródło
Za pomocą mechanizmu wyjaśnionego w odpowiedzi Jana poinstruowałem wtyczkę m2e, aby ignorowała cel „generuj-aplikację-xml”. To usuwa błąd i wydaje się działać, ponieważ m2e tworzy plik application.xml.
Zasadniczo błąd zmusił nas do podjęcia decyzji, który mechanizm odpowiada za generowanie pliku application.xml, gdy kompilacja Mavena działa wewnątrz Eclipse pod kontrolą wtyczki m2e. Zdecydowaliśmy, że rządzi m2e.
źródło
Musisz zrozumieć zawartość M2E_plugin_execution_not_covered i postępować zgodnie z poniższymi krokami:
<ignore/>
under<action>
.np. w przypadku błędu write-project-properties dodaj ten fragment w
<pluginExecutions>
sekcji pliku lifecycle-mapping-metadata.xml:W przyszłości nie powinieneś widzieć żadnych błędów dla żadnego projektu.
źródło
Wprawdzie pytanie jest zbyt stare, ale chciałbym się podzielić rozwiązaniem, które u mnie zadziałało bo sprawdziłem już wszystko co do tego błędu. To był ból, spędziłem dwa dni próbując i na koniec rozwiązanie było:
zaktualizuj wtyczkę M2e w eclipse
wyczyść i zbuduj ponownie
źródło