Выполнение плагина Eclipse Maven Error не распространяется на конфигурацию жизненного цикла:

Я использую Eclipse Juno с Maven 3.0.5 в Windows 7. Проект был ранее в Windows XP, и я перешел на 64-разрядную машину Windows 7.

Я скопировал проект Eclipse Spring 3, Hibernate 4 и JSF 2.0, и когда я пытаюсь скомпилировать, я получаю следующую ошибку

Plugin execution not covered by lifecycle configuration: 
org.bsc.maven:maven-processor-plugin:2.0.6:process (execution: process, phase: 
generate-sources)

Я попробовал, как упоминалось в этом потоке, добавив следующее в файл Eclipse.ini, однако это не решило проблему.

-vm
c:\Program Files\Java\jdk1.7.0_21\jre\bin\server\jvm.dll

Попробовал построить maven install и очистить, но проблема все еще сохраняется.

Как я могу решить эту проблему? Любая помощь очень заметна.

Спасибо

Отрывок из Maven

<plugins>
 <plugin>
 <groupid>org.apache.maven.plugins</groupid>
 <artifactid>maven-compiler-plugin</artifactid> 
 <configuration>
 1.6
 <target>1.6</target>
 <compilerargument>-proc:none</compilerargument>
 </configuration>
 </plugin>
 <plugin>
 <groupid>org.bsc.maven</groupid>
 <artifactid>maven-processor-plugin</artifactid>
 <version>2.0.6</version>
 <executions>
 <execution>
 <id>process</id>
 <goals>
 <goal>process</goal>
 </goals>
 <phase>generate-sources</phase>
 <configuration>
 <!-- source output directory -->
 <outputdirectory>target/metamodel</outputdirectory>
 </configuration>
 </execution>
 </executions>
 </plugin>
 </plugins>
1 ответ

Более новые версии m2e жалуются, если плагин Maven не предоставляет отображение жизненного цикла m2e. Более новый поставщик плагинов представляет такое сопоставление через файл META-INF/m2e/lifecycle-mapping-metadata.xml в своем JAR. Если этого файла нет, то Eclipse жалуется.

Вполне возможно, что эти жалобы можно добавить, добавив отображение жизненного цикла для старых плагинов на ваш POM. В данном примере это сопоставление выполняется внутри профиля, который автоматически активируется при запуске сборки в Eclipse (свойство m2e.version задано) и неактивно, когда выполняется обычная сборка maven.

<profiles>
 <profile>
 <id>m2e</id>
 <activation>
 <property>
 <name>m2e.version</name>
 </property>
 </activation>
 <build>
 <pluginmanagement>
 <plugins>
 <plugin>
 <groupid>org.eclipse.m2e</groupid>
 <artifactid>lifecycle-mapping</artifactid>
 <version>1.0.0</version>
 <configuration>
 <lifecyclemappingmetadata>
 <pluginexecutions>
 <pluginexecution>
 <pluginexecutionfilter>
 <groupid>org.bsc.maven</groupid>
 <artifactid>maven-processor-plugin</artifactid>
 <versionrange>[2.0.6,)</versionrange>
 <goals>
 <goal>process</goal>
 </goals>
 </pluginexecutionfilter>
 <action>
 <ignore>
 </ignore></action>
 </pluginexecution>
 </pluginexecutions>
 </lifecyclemappingmetadata>
 </configuration>
 </plugin> 
 </plugins>
 </pluginmanagement>
 </build>
 </profile>
</profiles>

В приведенном выше примере отключается плагин в сборках Eclipse. Также возможно включить его, указав как действие.

Помните, что настройки под pluginExecutionFilter должны соответствовать плагину и целям плагина, который вы хотите сопоставить. Для отображения различных плагинов можно указать несколько элементов pluginExecution.

licensed under cc by-sa 3.0 with attribution.