2015-05-05 4 views
9

Я использую Eclipse Kepler на Mac 10.9.5. Я импортировал несколько проектов Maven, используя плагин m2e Eclipse. Все эти проекты - дети родительского помпа. Когда я смотрю на «Обзор» в отдельных файлах ребенка pom.xml, я вижу вещи, как это:Как я могу отображать фазы жизненного цикла Maven, не покрытые плагином Eclipse m2e?

Plugin execution not covered by lifecycle configuration: org.codehaus.mojo:properties-maven-plugin:1.0-alpha-2:write-project-properties (execution: default, phase: process-resources) 

Я хотел бы Eclipse, чтобы выполнить эти этапы жизненного цикла в нужное время, но я не уверен, как это сделать. Когда я выбираю предложение в Eclipse ...

Permanently mark goal write-project-properties in pom.xml as ignore 

Я выбрал файл родительский pom.xml при запросе «выбрать место для размещения игнорировать», однако, ошибка не исчезает, когда я просмотреть файл pom.xml ребенка в Редактор Eclipse. Как я могу отображать фазы жизненного цикла, не охватываемые m2e?

Edit:

За ответ, я пошел в Затмения -> Preferences -> Maven -> Жизненный цикл Отображения, нажал на "Open Workspace Lifecycle Сопоставления метаданным", и редактировать файл, который предложил ...

<?xml version="1.0" encoding="UTF-8"?> 
<lifecycleMappingMetadata> 
    <pluginExecutions> 
     <pluginExecution> 
      <pluginExecutionFilter> 
       <groupId>org.codehaus.mojo</groupId> 
       <artifactId>xmlbeans-maven-plugin</artifactId> 
       <versionRange>2.3.3</versionRange> 
       <goals> 
        <goal>xmlbeans</goal> 
       </goals> 
      </pluginExecutionFilter> 
      <action> 
       <ignore /> 
      </action> 
     </pluginExecution> 
     <pluginExecution> 
      <pluginExecutionFilter> 
       <groupId>org.codehaus.mojo</groupId> 
       <artifactId>properties-maven-plugin</artifactId> 
       <versionRange>[1.0-alpha-2,)</versionRange> 
       <goals> 
        <goal>write-project-properties</goal> 
       </goals> 
      </pluginExecutionFilter> 
      <action> 
       <execute /> 
      </action> 
     </pluginExecution> 
    </pluginExecutions> 
</lifecycleMappingMetadata> 

Даже после перезапуска Eclipse, когда я открываю ребенка pom.xml файл, «выполнение плагинов не охваченную конфигурации жизненного цикла» ошибки остаются прежними.

+0

Я думаю, вы можете найти ответ в этом вопросе/ответах: http://stackoverflow.com/questions/6352208/how-to-solve-plugin-execution-not-covered-by-lifecycle-configuration-for- sprin – Fabien

+0

Я не использую плагин aspectj-maven. – Dave

ответ

9

M2Eclipse (плагин интеграции Maven для Eclipse) представляет собой отображение и выполнение по умолчанию phase s и goals Maven во внутренний рабочий процесс сборки Eclipse.

См: https://www.eclipse.org/m2e/documentation/m2e-execution-not-covered.html

[...] требует четкого указания, что делать со всеми плагинами Maven, связанных с «интересными» фазами [...] о жизненном цикле сборки проекта. Мы называем эти инструкции «сопоставление жизненного цикла сборки проекта» или просто «отображение жизненного цикла», поскольку они определяют, как m2e передает информацию из файла проекта pom.xml в конфигурацию и поведение проекта рабочей области Eclipse во время сборки рабочего пространства Eclipse.

Эти ошибки можно решить в каждом проекте или в вашей глобальной установке Eclipse.

Отображение жизненного цикла проекта можно настроить в файле pom.xml проекта, внесенном плагинами Eclipse, или по умолчанию использовать обычные плагины Maven, поставляемые с m2e. Мы называем эти «источники метаданных сопоставления жизненного цикла».

Глобальное Затмение файл установки называется lifecycle-mapping-metadata.xml и конфигурируется с помощью «жизненного цикла Отображения» в диалоге Maven Settings [1].

M2Eclipse сопоставляет выполнение плагинов действиям с использованием комбинации plugin groupId, artifactId, диапазона версий и цели. Существует три основных действия, которые M2Eclipse может дать указание выполнить с помощью плагина - игнорировать, выполнить и делегировать конфигуратору проекта.

[...]

Опция ignore, как следует из названия, сообщает M2Eclipse молча игнорировать выполнение плагина.

[...]

Опция выполнить говорит m2e выполнить действие в рамках Eclipse, рабочее пространство полной или инкрементной сборка.

делегат проект конфигуратор означает, что есть адаптер плагин Eclipse, в Eclipse, Marketplace. Плагин адаптера выполняет следующие функции: phase и goals.

Реальные настройки (структура XML) не являются реальными интуитивно понятными, но немного описаны в ссылке выше.

В вашем случае lifecycle-mapping-metadata.xml будет выглядеть так:

<?xml version="1.0" encoding="UTF-8"?> 
<lifecycleMappingMetadata> 
    <pluginExecutions> 
[...] 
    <pluginExecution> 
     <pluginExecutionFilter> 
     <groupId>org.codehaus.mojo</groupId> 
     <artifactId>properties-maven-plugin</artifactId> 
     <versionRange>[1.0-alpha-2,)</versionRange> 
     <goals> 
      <goal>write-project-properties</goal> 
     </goals> 
     </pluginExecutionFilter> 
     <action> 
     <ignore /> 
     </action> 
    </pluginExecution> 
[...] 
    </pluginExecutions> 
</lifecycleMappingMetadata> 

ProTip: У вас есть несколько проектов и использовать набор Maven плагинов все время, переместите lifecycle-mapping-metadata.xml в SCM (GIT, SVN, CVS ...).

EDIT

Добавить все цели плагин и, возможно, дополнительные плагины, чтобы избежать этих ошибок. Внимательно прочитайте сообщение об ошибке для дополнительных goal s или плагинов.

После любого сохраненного изменения lifecycle-mapping-metadata.xml вы должны перезагрузить содержимое в диалоговом окне настроек Maven [1] и обновить все проекты на основе Maven в рабочей области.

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

  • Обновления от pom.xml
  • Обновить рабочее пространство ресурсов из локальной файловой системы
  • Чистых проекты

EDIT

[1] Диалог настроек Maven был расположен по адресу Файл> Окно> Настройки> Maven > Отображения жизненного цикла до Exclipse Oxygen.

+0

Я отредактировал свой вопрос, чтобы показать, что произошло, когда я отредактировал файл, как вы предложили (я положил «execute» вместо «ignore»), но «Plugin not покрытый жизненным циклом ". – Dave

+0

Это то же самое, что и в случае с ошибками или разными целями? Вы должны добавить все не отображаемые цели и, возможно, другие плагины. – barthel

+0

@barthel. ProTip ... где разместить lifecycle-mapping-metadata.xml?/или/src или где? –

 Смежные вопросы

  • Нет связанных вопросов^_^