Как решить "Выполнение плагина, не охватываемое конфигурацией жизненного цикла" для Spring Data Maven Builds
Я пытаюсь работать с Spring Data и Neo4j. Я начал с того, что следовал этому руководству, связанному с основным сайтом. В частности, я основал свой pom.xml на "Hello, World!" пример файла. Вот фрагмент моего pom.xml для плагина, который вызывает проблемы...
<plugin>
<!-- Required to resolve aspectj-enhanced class features -->
<groupId>org.codehaus.mojo</groupId>
<artifactId>aspectj-maven-plugin</artifactId>
<version>1.0</version>
<configuration>
<outxml>true</outxml>
<aspectLibraries>
<aspectLibrary>
<groupId>org.springframework</groupId>
<artifactId>spring-aspects</artifactId>
</aspectLibrary>
<aspectLibrary>
<groupId>org.springframework.data</groupId>
<artifactId>spring-data-neo4j</artifactId>
</aspectLibrary>
</aspectLibraries>
<source>1.6</source>
<target>1.6</target>
</configuration>
<executions>
<!-- ERROR HERE IN ECLIPSE SEE BELOW FOR FULL MESSAGE -->
<execution>
<goals>
<goal>compile</goal>
<goal>test-compile</goal>
</goals>
</execution>
</executions>
<dependencies>
<dependency>
<groupId>org.aspectj</groupId>
<artifactId>aspectjrt</artifactId>
<version>${aspectj.version}</version>
</dependency>
<dependency>
<groupId>org.aspectj</groupId>
<artifactId>aspectjtools</artifactId>
<version>${aspectj.version}</version>
</dependency>
</dependencies>
</plugin>
Я вижу ошибку:
Multiple annotations found at this line:
- Plugin execution not covered by lifecycle configuration: org.codehaus.mojo:aspectj-maven-plugin:1.0:compile (execution: default, phase: process-classes)
- Plugin execution not covered by lifecycle configuration: org.codehaus.mojo:aspectj-maven-plugin:1.0:test-compile (execution: default, phase: process-classes)
Я использую Eclipse 3.6.2 и m2e 0.13. Я не эксперт Maven, поэтому, если возможно, будьте очень толковы в своих ответах.
Я также пробовал m2e 1.0.0 через этот сайт обновлений и все еще получаю ту же ошибку.
35 ответов
Что за беспорядок Я не помню, где я нашел это, но я должен был добавить следующее, чтобы M2Eclipse был счастлив. Еще более печально то, что не совсем легко понять, зачем нужен этот тег.
<build>
... various plugins ...
<pluginManagement>
<plugins>
<!--This plugin's configuration is used to store Eclipse
m2e settings only. It has no influence on the Maven build itself. -->
<plugin>
<groupId>org.eclipse.m2e</groupId>
<artifactId>lifecycle-mapping</artifactId>
<version>1.0.0</version>
<configuration>
<lifecycleMappingMetadata>
<pluginExecutions>
<pluginExecution>
<pluginExecutionFilter>
<groupId>org.codehaus.mojo</groupId>
<artifactId>aspectj-maven-plugin</artifactId>
<versionRange>[1.0,)</versionRange>
<goals>
<goal>test-compile</goal>
<goal>compile</goal>
</goals>
</pluginExecutionFilter>
<action>
<execute />
</action>
</pluginExecution>
</pluginExecutions>
</lifecycleMappingMetadata>
</configuration>
</plugin>
</plugins>
</pluginManagement>
</build>
У плагина M2Eclipse был ряд других проблем, которые просто не работали с Spring Data. В конце концов я отключил M2Eclipse в пользу плагина Apache Eclipse.
В моем случае аналогичной проблемы, вместо того, чтобы использовать предложение Эндрю для исправления, она работала просто после того, как я ввел тег
<build>
<pluginManagement>
<plugins>
<plugin> ... </plugin>
<plugin> ... </plugin>
....
</plugins>
</pluginManagement>
</build>
Как только эта структура будет создана, ошибка исчезнет.
В Eclipse Luna 4.4.0 вы можете игнорировать эту ошибку в настройках.
Окно > Настройки > Maven > Ошибки / Предупреждения > Выполнение плагина, не охваченное конфигурацией жизненного цикла. Выберите Игнорировать / Предупреждение / Ошибка, как вы хотите.
Кроме того, в быстром исправлении (Ctrl + 1) для этой ошибки она дает возможность пометить цель как проигнорированную в Eclipse build в настройках Eclipse (экспериментальная)
Это более чистый способ, так как он не изменяет ваш pom.xml
,
Вам нужно будет выполнить проект Maven > Update, чтобы исправить ту же ошибку в любом другом проекте.
Самый быстрый способ решить эту проблему (из документации Eclipse m2e):
используйте quick-fix для ошибки в pom.xml и выберите
Permanently mark goal run in pom.xml as ignored in Eclipse build
- это сгенерирует требуемый шаблонный код для вас.После этого просто замените
<ignore/>
пометить с<execute/>
пометить в сгенерированной конфигурации, и все готово:<action> <execute/> </action>
См. https://www.eclipse.org/m2e/documentation/m2e-execution-not-covered.html.
Чтобы решить некоторые давние проблемы, m2e 1.0 требует четких инструкций, что делать со всеми плагинами Maven, связанными с "интересными" фазами жизненного цикла сборки проекта. Мы называем эти инструкции "сопоставлением жизненного цикла сборки проекта" или просто "сопоставлением жизненного цикла", потому что они определяют, как m2e отображает информацию из файла проекта pom.xml в конфигурацию и поведение проекта рабочей области Eclipse во время сборки рабочей области Eclipse.
Конфигурация сопоставления жизненного цикла сборки проекта может быть указана в проекте pom.xml, предоставленном плагинами Eclipse, и есть также конфигурация по умолчанию для некоторых обычно используемых плагинов Maven, поставляемых с m2e. Мы называем это "источниками метаданных отображения жизненного цикла". m2e создаст маркер ошибки, как показано ниже, для всех исполнений плагина, которые не имеют сопоставления жизненного цикла ни в одном из источников метаданных сопоставления.
Plugin execution not covered by lifecycle configuration: org.apache.maven.plugins:maven-antrun-plugin:1.3:run (execution: generate-sources-input, phase: generate-sources)
m2e сопоставляет выполнение плагина с действиями, используя комбинацию идентификатора группы, идентификатора артефакта, диапазона версий и цели. Существует три основных действия, которые m2e можно поручить выполнить с плагином - игнорировать, выполнить и делегировать конфигуратору проекта.
Обратите внимание, что версия 1.7.0 M2Eclipse (m2e), доступная в сегодняшнем выпуске Eclipse Neon, поддерживает новый синтаксис для указания метаданных отображения жизненного цикла. В результате, вот такой пример (здесь мы говорим m2e игнорировать цель):
<pluginManagement>
<plugins>
<!--This plugin's configuration is used to store Eclipse m2e settings only. It has no influence on the Maven build itself.-->
<plugin>
<groupId>org.eclipse.m2e</groupId>
<artifactId>lifecycle-mapping</artifactId>
<version>1.0.0</version>
<configuration>
<lifecycleMappingMetadata>
<pluginExecutions>
<pluginExecution>
<pluginExecutionFilter>
<groupId>org.codehaus.mojo</groupId>
<artifactId>exec-maven-plugin</artifactId>
<versionRange>[1.5.0,)</versionRange>
<goals>
<goal>exec</goal>
</goals>
</pluginExecutionFilter>
<action>
<ignore></ignore>
</action>
</pluginExecution>
</pluginExecutions>
</lifecycleMappingMetadata>
</configuration>
</plugin>
</plugins>
</pluginManagement>
можно заменить одной строкой в узле выполнения плагина:
<?m2e ignore?>
Смотрите примечания к выпуску для деталей.
m2e 0.13 вводит разъемы m2e и m2e Market Place для расширения возможностей m2e. Это как старый репозиторий m2e-extras.
Вы можете получить доступ к рынку m2e из настроек: " Предпочтения"> "Maven"> "Discovery"> "Открыть каталог". Установка интеграции WTP решила большинство проблем с плагинами для меня.
В качестве дополнения к предыдущим ответам - есть обходной путь, который я только что обнаружил, если вы не можете или не хотите добавлять все эти шаблоны в POM вашего проекта. Если вы посмотрите в следующем месте:
{Eclipse_folder}/plugins/org.eclipse.m2e.lifecyclemapping.defaults_{m2e_version}
Вы должны найти файл с именем lifecycle-mapping-metadata.xml
где вы можете внести те же изменения, которые описаны в других ответах и в исполнении плагина M2E.
У меня была та же проблема с Eclipse v3.7 (Indigo) и m2eclipse, что и у моего плагина Maven. Ошибка была легко решена путем явного указания фазы выполнения в определении плагина. Так что мой пом выглядит так:
<project>
...
<build>
...
<plugins>
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>buildnumber-maven-plugin</artifactId>
<version>1.0</version>
<configuration>
<timestampFormat>yyyy-MM-dd_HH-mm-ss</timestampFormat>
</configuration>
<executions>
<execution>
*<phase>post-clean</phase>*
<goals>
<goal>create-timestamp</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
...
- Выберите Справка> Установить новое программное обеспечение...
Используйте этот программный репозиторий
Убедитесь, что "Связаться со всеми сайтами обновлений во время установки, чтобы найти необходимое программное обеспечение" отмечен.
Установите Конфигуратор AJDT m2e
Источник: Обновление интеграции Maven для SpringSource Tool Suite 2.8.0 (Эндрю Айзенберг)
Это должно автоматически установить ADJT, если у вас его не установлено, но если это не так, сначала установите AspectJ Development Tools (ADJT) с "сайта обновлений Indigo" (в зависимости от вашей версии Eclipse).
Больше информации на сайте AspectJ Development Tools.
У меня была такая же проблема с индиго и проектом, который должен генерировать исходные коды Java из XSD.
Я мог бы исправить это, предоставив недостающее отображение жизненного цикла, как описано на этой странице
Я исправил это после публикации в блоге Обновление интеграции Maven для SpringSource Tool Suite 2.8.0.
Следуйте совету в разделе "Ой, мои проекты больше не строятся". Даже когда он предназначен для SpringSource Tool Suite, я использовал его для исправления обычной установки Eclipse. Мне не нужно было изменять мои файлы POM.
Идти к workspace/rtc-ws/.metadata/.plugins/org.eclipse.m2e.core/lifecycle-mapping-metadata.xml
затем создать lifecycle-mapping-metadata.xml
файл и вставьте ниже и перезагрузите конфигурацию, как показано ниже
Если вы используете Eclipse 4.2 и у вас проблемы с отображением, и вы не создадите беспорядок pom.xml
создать новый файл lifecycle-mapping-metadata.xml
настроить его в Windows -> Preferences -> Lifecycle mapping
(не забудьте нажать "Обновить метаданные отображений жизненного цикла рабочей области" после каждого изменения этого файла!). Вот пример, основанный на eclipse/plugins/org.eclipse.m2e.lifecyclemapping.defaults_1.2.0.20120903-1050.jar/lifecycle-mapping-metadata.xml
<?xml version="1.0" encoding="UTF-8"?>
<lifecycleMappingMetadata>
<pluginExecutions>
<pluginExecution>
<pluginExecutionFilter>
<groupId>org.codehaus.mojo</groupId>
<artifactId>buildnumber-maven-plugin</artifactId>
<goals>
<goal>create-timestamp</goal>
</goals>
<versionRange>[0.0,)</versionRange>
</pluginExecutionFilter>
<action>
<ignore />
</action>
</pluginExecution>
<pluginExecution>
<pluginExecutionFilter>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-dependency-plugin</artifactId>
<goals>
<goal>list</goal>
</goals>
<versionRange>[0.0,)</versionRange>
</pluginExecutionFilter>
<action>
<ignore />
</action>
</pluginExecution>
<pluginExecution>
<pluginExecutionFilter>
<groupId>org.zeroturnaround</groupId>
<artifactId>jrebel-maven-plugin</artifactId>
<goals>
<goal>generate</goal>
</goals>
<versionRange>[0.0,)</versionRange>
</pluginExecutionFilter>
<action>
<ignore />
</action>
</pluginExecution>
<pluginExecution>
<pluginExecutionFilter>
<groupId>org.codehaus.mojo</groupId>
<artifactId>gwt-maven-plugin</artifactId>
<goals>
<goal>compile</goal>
</goals>
<versionRange>[0.0,)</versionRange>
</pluginExecutionFilter>
<action>
<ignore />
</action>
</pluginExecution>
<pluginExecution>
<pluginExecutionFilter>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-dependency-plugin</artifactId>
<goals>
<goal>copy-dependencies</goal>
<goal>unpack</goal>
</goals>
<versionRange>[0.0,)</versionRange>
</pluginExecutionFilter>
<action>
<ignore />
</action>
</pluginExecution>
<pluginExecution>
<pluginExecutionFilter>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-antrun-plugin</artifactId>
<versionRange>[1.7,)</versionRange>
<goals>
<goal>run</goal>
</goals>
</pluginExecutionFilter>
<action>
<ignore />
</action>
</pluginExecution>
<pluginExecution>
<pluginExecutionFilter>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-checkstyle-plugin</artifactId>
<versionRange>[2.8,)</versionRange>
<goals>
<goal>check</goal>
</goals>
</pluginExecutionFilter>
<action>
<ignore />
</action>
</pluginExecution>
</pluginExecutions>
</lifecycleMappingMetadata>
Эта ошибка также происходит на неоне из-за отсутствия разъема m2e. Решение: ошибка при наведении курсора и выбор - открыть новые разъемы m2e.
Он установит новый разъем и все.
Я использовал
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-antrun-plugin</artifactId>
<version>1.6</version>
<executions>
<execution>
<id>runSomeAntTasks</id>
<phase>test-compile</phase>
.
.
<goals>
<goal>run</goal>
</goals>
</execution>
</executions>
и изменил его на
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-antrun-plugin</artifactId>
<version>1.6</version>
<executions>
<execution>
<id>runSomeAntTasks</id>
<phase>integration-test</phase>
.
.
<goals>
<goal>run</goal>
</goals>
</execution>
</executions>
и ошибка ушла. Возможно, не рекомендуется привязывать выполнение к фазе тест-компиляции, поэтому поиск другой фазы может быть альтернативным решением для добавления конфигурации управления подключаемыми модулями в жизненный цикл maven.
Где найти WTP:
Наведите курсор мыши на
Я установил их все, что по умолчанию проверено, и это работает.
У меня была точно такая же проблема после обновления m2e, и я решил ее, переустановив Maven Integration для Eclipse WTP.
Как оказалось, я удалил его, пытаясь обновить m2e с версии 0.x до 1.x
Изменения
<artifactId>aspectj-maven-plugin</artifactId>
<version>1.2</version>
в
<artifactId>aspectj-maven-plugin</artifactId>
<version>1.3</version>
решил проблему для меня.
У меня была эта проблема сегодня. Я использовал STS 3.4 с его Roo 1.2.4. Позже я попробовал с Eclipse Kepler и Roo 1.2.5, такая же ошибка.
Я изменил свой pom.xml, добавив тег pluginTemplates после сборки и до объявления плагинов, но не работал.
Что сделало магию для меня:
- Использование jdk 1.7.0_51
- Скачать Roo 1.2.5
- Downloaded Maven 3.2.1 (если нет, то при выполнении команды "выполнить затмение" появляется эта ошибка "ошибка =2, такого файла или каталога нет")
Настроил каталоги JDK, Roo и Maven bin в моем PATH:
экспорт PATH=/opt/jdk1.7.0_51/bin:$PATH экспорт PATH=/opt/spring-roo-1.2.5.RELEASE/bin:$PATH экспорт PATH=/opt/apache-maven-3.2.1/bin:$PATH
Сделал мою конфигурацию следующим образом: ( http://docs.spring.io/spring-roo/reference/html/beginning.html)
$ mkdir hello
$ cd hello
$ roo.sh
roo> project --topLevelPackage com.foo
roo> jpa setup --provider HIBERNATE --database HYPERSONIC_PERSISTENT
roo> web mvc setup
roo> perform eclipse
Открыть с помощью Eclipse (ничего из STS, но я думаю, что это работает): Импорт -> Существующие проекты в рабочую область
Я столкнулся с точно такой же проблемой с плагином Maven Thrift. Вот мое решение, которое не требует путаницы с вашим pom.xml:
Используйте командную строку Maven утилиту mvn
mvn eclipse: затмение
создать проект затмения
Импортируйте проект в Eclipse. Не забудьте использовать
Файл> Импорт> Общие> Существующие проекты в рабочую область
добавить проект в ваше рабочее пространство.
Это должно решить проблему.
Этот ответ так же хорош, как и верхний ответ управления плагинами выше (то есть, он ужасен).
Просто удалите весь оскорбительный XML-код в POM.
Готово. Проблема решена (за исключением того, что вы просто сломали свой maven config...).
Разработчики должны быть очень осторожны, они понимают теги управления плагинами, прежде чем делать любое из этих решений. Случайное переключение управления плагинами вокруг ваших плагинов может привести к поломке сборки maven для всех остальных, просто чтобы затмение заработало.
Вместо того, чтобы испортить ваш pom-файл, я бы предложил вам перейти к Показать представление → Маркеры в Eclipse, выбрать и удалить маркеры соответствующих ошибок.
Я получил ту же ошибку. После выполнения следующего он ушел.
- Щелкните правой кнопкой мыши по проекту.
- Выберите Maven > Обновить проект...
Если вы используете Eclipse Juno, это может быть проблемой Maven Integration For Eclipse WTP. Так что установите то же самое с Eclipse Market Place.
В Eclipse IDE Help>>Eclipse Market Place >> введите запрос wtp, и он покажет интеграцию maven для eclipse WTP для Juno, установите его и обновите зависимости maven и наслаждайтесь
Я столкнулся с этим, используя Eclipse v4.3 (Kepler) и Maven 3.1.
Решение состоит в том, чтобы использовать JDK, а не JRE для вашего проекта Eclipse. Обязательно попробуй maven clean
и тестирование из Eclipse только для загрузки отсутствующих JAR-файлов.
Вы можете подавить эту ошибку в Eclipse: Window -> Preferences -> Maven -> Error/Warnings
Я следовал подсказке GUI для поиска любого соединителя, а затем я нашел AspectJ Integrator от SpringSource Team. После установки все было улажено.
Большинство ответов касаются просто игнорирования ошибки, а другие предлагаемые решения не работают в моем случае [для maven-compiler-plugin ]. Мое решение этой проблемы:
- Перейдите в локальный репозиторий .m2 в вашей системе и найдите
org.apache.maven.plugins
каталог:- C:\Users\[ИМЯ ПОЛЬЗОВАТЕЛЯ]\.m2\repository\org\apache\maven\plugins
- Удалите папку maven-compiler-plugin из этого каталога.
- Возможно, вам придется закрыть IDE (Eclipse)
- После этого снова откройте IDE и обновите проект с помощью Maven.
- В Eclipse щелкните правой кнопкой мыши корень проекта и выберите Maven -> Обновить проект...