Выполнение плагина не распространяется на ошибку конфигурации жизненного цикла в Eclipse Juno
Почему моя сборка Maven отлично работает в командной строке, но когда я запускаю в Eclipse, мне нужно добавить этот раздел в мой pom.xml, иначе я получаю эту ошибку:
Plugin execution not covered by lifecycle configuration
: org.apache.maven.plugins:maven-compiler-plugin:3.1:testCompile
(execution: default-testCompile, phase: test-compile)
Не странно, что это происходит вокруг плагина 'maven-compiler-plugin'? Я не могу найти еще один такой вопрос в Google, хотя я нахожу много предложений по исправлению сторонних плагинов. Я много исследовал и искал и не нашел объяснений об этом, даже здесь.
И pom.xml необходимо исправить это:
<!--This plugin 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.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<versionRange>[3.1,)</versionRange>
<goals>
<goal>testCompile</goal>
</goals>
</pluginExecutionFilter>
<action>
<ignore></ignore>
</action>
</pluginExecution>
</pluginExecutions>
</lifecycleMappingMetadata>
</configuration>
</plugin>
И, вот мой простой проект на GitHub, если вы хотите увидеть мой источник.
Ответы
Ответ 1
Я, наконец, решил. Похоже, что раздел "pluginManagement", который я написал выше, требуется проекту Eclipse Maven в целом, хотя я его сопротивлялся, и даже если никакая документация, которую я могу найти в Интернете, никогда не упоминает это явно.
Кроме того, "версия Range" в секции исключения жизненного цикла, похоже, также требует номер версии "gmaven-plugin", а не "версию Maven", которую я пытался ее выдать.
<pluginExecutionFilter>
<groupId>org.codehaus.gmaven</groupId>
<artifactId>gmaven-plugin</artifactId>
<versionRange>[1.5,)</versionRange>
<goals>
<goal>testCompile</goal>
<goal>compile</goal>
</goals>
</pluginExecutionFilter>
Ответ 2
Добавьте следующий xml:
<?xml version="1.0" encoding="UTF-8"?>
<lifecycleMappingMetadata>
<pluginExecutions>
<pluginExecution>
<pluginExecutionFilter>
<groupId>org.codehaus.gmaven</groupId>
<artifactId>gmaven-plugin</artifactId>
<versionRange>[1.3,)</versionRange>
<goals>
<goal>compile</goal>
<goal>testCompile</goal>
</goals>
</pluginExecutionFilter>
<action>
<execute />
</action>
</pluginExecution>
</pluginExecutions>
</lifecycleMappingMetadata>
- Перезагрузите сопоставления Lifecycle и вызовите обновление projekt в своем проекте maven. (ALT + F5)
Ответ 3
Вам может потребоваться соединитель M2E для понимания модуля maven-compiler-plugin с использованием компилятора Eclipse (JDT).
Выберите "обнаружить соединители" и выберите разъем M2E для компилятора Eclipse JDT, предоставленный JBoss, или установите его вручную.
Разъем M2E для Eclipse JDT Compiler 1.0.1.201209200903
Вам также может быть предложен разъем Groovy - возможно, он использует подобную технологию под капотом? - но если вы не используете Groovy, вероятно, нет смысла устанавливать такую интеграцию.