Я использую Eclipse 3.7 Indigo с Maven M2E Plugin 1.0.100.
Используя архетип JBoss 7.x JavaEE 6 EAR, pom для EAR выдает мне эту ошибку:
Выполнение плагина не охвачено конфигурацией жизненного цикла: org.apache.maven.plugins: maven-ear-plugin: 2.6: generate-application-xml (выполнение: 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>
источник
target
папку. Вы бы не хотели, чтобы это повторялось «постепенно» после сохранения каждого исходного файла. Или, может быть, вы этого хотите. На самом деле m2e ничего не знает о вашей конкретной сборке. Вы можете сохранить то, что должен делать m2e, в Eclipse, POM или, возможно, установить коннектор m2e, который добавляет m2e больше знаний для обработки этапа сборки. Это варианты, которые вы должны увидеть. Я понимаю, что вы не хотите, чтобы ваш POM знал m2e, но это хорошее место для централизованной настройки этого для всех ваших разработчиков.в любом случае уже слишком поздно, но мое решение было простым: щелкните правой кнопкой мыши сообщение об ошибке в Eclipse и выберите Quick Fix >> Ignore для каждого pom с такими ошибками
источник
В Eclipse есть концепция инкрементальных сборок, что невероятно полезно, так как экономит много времени.
Как это полезно
Допустим, вы только что изменили один файл .java. Инкрементальные построители смогут компилировать код без необходимости перекомпилировать все (что займет больше времени).
Теперь в чем проблема с плагинами Maven
Большинство плагинов maven не предназначены для инкрементных сборок и, следовательно, создают проблемы для m2e. m2e не знает, важна ли цель плагина или нет. Если он просто запускает каждый плагин при изменении одного файла, это займет много времени.
Это причина, по которой m2e полагается на информацию метаданных, чтобы выяснить, как следует обрабатывать выполнение. m2e предлагает различные варианты предоставления этой информации метаданных, и порядок предпочтения указан ниже (от самого высокого до самого низкого).
1,2 относится к указанию раздела pluginManagement в теге вашего файла pom или любого из его родительских. М2Э считывает эту конфигурацию , чтобы настроить на project.Below SNIPPET инструктирует m2e игнорировать
jslint
иcompress
цели yuicompressor-Maven-плагин3) Если вы не предпочитаете загрязнять свой pom-файл этими метаданными, вы можете сохранить его во внешнем XML-файле (вариант 3). Ниже приведен пример отображения файла , который инструктирует m2e игнорировать
jslint
иcompress
цели yuicompressor-Maven-плагин4) Если вам не нравится какой-либо из этих 3 вариантов, вы можете использовать коннектор m2e (расширение) для плагина maven. Коннектор, в свою очередь, предоставит метаданные m2e. Вы можете увидеть пример информации о метаданных в коннекторе по этой ссылке . Вы могли заметить, что метаданные относятся к конфигуратору. Это просто означает, что m2e делегирует ответственность этому конкретному java-классу, предоставленному автором расширения. Конфигуратор может настроить проект (например, добавить дополнительные исходные папки и т. Д.) И решить, выполнять ли фактический плагин maven во время инкрементной сборки (если неправильное управление в конфигураторе, это может привести к бесконечным сборкам проекта)
По этим ссылкам приведен пример конфигуратора ( ссылка1 , ссылка2 ). Так что, если плагином можно управлять через внешний разъем, вы можете его установить. m2e ведет список таких соединителей, предоставленный другими разработчиками, он известен как каталог обнаружения. m2e предложит вам установить коннектор, если у вас еще нет метаданных сопоставления жизненного цикла для выполнения с помощью любого из вариантов (1-6), а в каталоге обнаружения есть некоторое расширение, которое может управлять выполнением.
На изображении ниже показано, как m2e предлагает вам установить коннектор для build-helper-maven-plugin. ,
5) m2e призывает авторов плагинов поддерживать инкрементную сборку и предоставлять отображение жизненного цикла в самом maven-plugin. Это будет означать, что пользователям не придется использовать какие-либо дополнительные сопоставления жизненного цикла или соединители. Некоторые авторы плагинов уже реализовали это
6) По умолчанию m2e содержит метаданные отображения жизненного цикла для большинства часто используемых плагинов, таких как maven-compiler-plugin и многих других.
Теперь вернемся к вопросу: вы, вероятно, можете просто предоставить игнорирование сопоставления жизненного цикла в 1, 2 или 3 для той конкретной цели, которая создает для вас проблемы.
источник
Хороший обходной путь, чтобы напомнить вам, что m2e можно было бы лучше настроить без наследования проекта ложноположительного маркера ошибки, - просто понизить эти ошибки до предупреждений:
Окно -> Настройки -> Maven -> Ошибки / предупреждения -> Выполнение плагина не охвачено конфигурацией жизненного цикла = Предупреждение
источник
Я попытался выполнить конкретное подключение сразу после очистки, то есть после очистки (по умолчанию это фаза очистки). Это сработало для меня с eclipse indigo. Просто добавленная пост-чистка решила проблему для меня.
источник
phase
и agoal
дляexecution
файла pom.xml, который мне был предоставлен, и я все еще получаю сообщение об ошибке.Я смог решить ту же проблему с maven-antrun-plugin и jaxb2-maven-plugin в Eclipse Kepler 4.3, применив это решение: http://wiki.eclipse.org/M2E_plugin_execution_not_covered#Eclipse_4.2_add_default_mapping
Итак, содержимое моего% elipse_workspace_name% /. metadata / .plugins / org.eclipse.m2e.core / lifecycle-mapping-metadata.xml выглядит следующим образом:
* Пришлось перезапустить Eclipse, чтобы увидеть, что ошибки исчезли.
источник
Начиная с Maven Eclipse (m2e) версии 0.12, все цели жизненного цикла Maven должны соответствовать установленному расширению m2e. В этом случае
maven-ear-plugin
цель была не нанесена на картуdefault-generate-application-xml
.Вы можете исключить неотмеченные цели жизненного цикла, просто следуя инструкциям здесь:
https://wiki.eclipse.org/M2E_plugin_execution_not_covered
Или просто щелкните правой кнопкой мыши сообщение об ошибке в Eclipse и выберите
Quick Fix
->Ignore for every pom with such errors
.Вы должны быть осторожны, игнорируя цели жизненного цикла: обычно цели делают что-то полезное, и если вы сконфигурируете их для игнорирования в Eclipse, вы можете пропустить важные шаги сборки. Вы также можете рассмотреть возможность добавления поддержки расширения Maven Eclipse EAR для несопоставленной цели жизненного цикла.
источник
С помощью механизма, описанного в ответе Яна, я проинструктировал плагин m2e игнорировать цель «generate-application-xml». Это избавляет от ошибки и, похоже, работает, поскольку m2e создает application.xml.
Таким образом, ошибка заставила нас решить, какой механизм отвечает за создание application.xml, когда сборка Maven выполняется внутри Eclipse под управлением плагина m2e. И мы решили, что за это отвечает m2e.
источник
Вам необходимо понять содержимое M2E_plugin_execution_not_covered и выполнить шаги, указанные ниже:
<ignore/>
под<action>
.например: для ошибки write-project-properties добавьте этот фрагмент в
<pluginExecutions>
раздел файла lifecycle-mapping-metadata.xml:Вы не должны видеть ошибок в будущем ни для одного проекта.
источник
Несмотря на то, что вопрос слишком старый, я хотел бы поделиться решением, которое сработало для меня, потому что я уже все проверил, когда дело доходит до этой ошибки. Это была боль, я потратил два дня на попытки, и в конце концов решение было таким:
обновить плагин M2e в eclipse
очистить и построить снова
источник