Как решить «Выполнение плагина, не охватываемое конфигурацией жизненного цикла» для сборок Spring Data Maven - PullRequest
850 голосов
/ 15 июня 2011

Я пытаюсь работать с Spring Data и Neo4j . Я начал с того, что пытался следовать этому руководству , на которое ссылается основной сайт. В частности, я основал свой pom.xml на «Привет, мир!» файл примера . Вот фрагмент моего 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 через этот сайт обновления и все еще получаю ту же ошибку.

Ответы [ 33 ]

1242 голосов
/ 06 декабря 2012

В моем случае аналогичной проблемы вместо того, чтобы использовать предложение Эндрю для исправления, она работала просто после того, как я ввел тег в рассматриваемый файл pom.xml. Похоже, эта ошибка связана с отсутствующим тегом . Итак, чтобы избежать исключений в Eclipse, нужно просто заключить все теги плагинов в тег , например:

<build>
    <pluginManagement>
        <plugins>
            <plugin> ... </plugin>
            <plugin> ... </plugin>
                  ....
        </plugins>
    </pluginManagement>
</build>

Как только эта структура будет создана, ошибка исчезнет.

404 голосов
/ 16 июня 2011

Какой беспорядок.Я не помню, где я нашел это, но я должен был добавить следующее, чтобы 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 .

203 голосов
/ 11 февраля 2013

Предлагаемое решение из Документация Eclipse m2e :

  1. Используйте quick-fix при ошибке в pom.xml и выберите Permanently mark goal run in pom.xml as ignored in Eclipse build - это сгенерирует требуемый код для вас.

  2. Чтобы настроить Eclipse для запуска вашего плагина во время сборки - просто замените тег <ignore/> на тег <execute/> в сгенерированной конфигурации:

    <action>
        <execute/>
    </action>
    

    В качестве альтернативы вы можете указать Eclipse запускать плагин также для инкрементных сборок:

    <action>
        <execute>
            <runOnIncremental>true</runOnIncremental>
        </execute >
    </action>
    
195 голосов
/ 11 декабря 2014

В Eclipse Luna 4.4.0 вы можете игнорировать эту ошибку в настройках

Окно > Предпочтения > Maven > Ошибки / предупреждения > Выполнение плагина не предусмотрено конфигурацией жизненного цикла, Выберите Игнорировать / Предупреждение / Ошибка по своему желанию.

Кроме того, в быстром исправлении (Ctrl + 1) для этой ошибки, это дает возможность пометить цель как проигнорированную в Eclipse build в настройках Eclipse (экспериментальная)

Это более чистый способ, поскольку он не изменяет ваш pom.xml.

Вам потребуется Maven > Обновить проект , чтобы исправить ту же ошибку в любом другом проекте.


В STS (Spring-tool-suite) вы можете игнорировать эту ошибку в настройках

Окно> Настройки> Maven> Ошибки / Предупреждения> Выполнение плагина не охватывается конфигурацией жизненного цикла. Выберите Игнорировать / Предупреждение / Ошибка как ваше желание. Затем. Щелкните правой кнопкой мыши проект, выберите Maven и обновите проект, тогда ошибка исчезнет.

110 голосов
/ 25 июня 2011

См. 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 сопоставляет исполнения плагина с действиями, используя комбинацию плагина groupId, artifactId, диапазона версийи цель.Существует три основных действия, которые m2e можно поручить выполнить с плагином: игнорировать , выполнить и делегировать проекту конфигуратор .

29 голосов
/ 23 июня 2011

m2e 0.13 вводят m2e разъемы и m2e Market Place для расширения возможностей m2e.Это похоже на старый репозиторий m2e-extras.

Доступ к рынку m2e можно получить из настроек: Предпочтения> Maven> Discovery> Открытый каталог .Установка WTP-интеграции решила большинство проблем с плагинами для меня.

22 голосов
/ 23 июня 2016

Обратите внимание, что версия 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?>

enter image description here

Подробности см. В примечаниях к выпуску .

21 голосов
/ 16 мая 2012

В качестве дополнения к предыдущим ответам - есть обходной путь, который я только что обнаружил, если вы не можете или не хотите добавлять все эти шаблоны в POM вашего проекта.Если вы посмотрите в следующем месте:

{Eclipse_folder}/plugins/org.eclipse.m2e.lifecyclemapping.defaults_{m2e_version}

Вы должны найти файл с именем lifecycle-mapping-metadata.xml, в котором вы можете внести те же изменения, что описаны в других ответах и ​​в Выполнение плагина M2E не рассматривается .

21 голосов
/ 21 сентября 2016

Изменить настройки Maven для выполнения плагина с ошибки на игнорирование

17 голосов
/ 14 сентября 2011

У меня была та же проблема с 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>
        ...
...