Избавиться от POM не найдено предупреждение для org.eclipse.m2e: отображение жизненного цикла
С целью правильной работы m2e 1.0 мне пришлось указать отображение жизненного цикла:
<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.2,)</versionRange>
<goals>
<goal>process</goal>
</goals>
</pluginExecutionFilter>
<action>
<execute />
</action>
</pluginExecution>
</pluginExecutions>
</lifecycleMappingMetadata>
</configuration>
</plugin>
</plugins>
</pluginManagement>
Но затем я получаю это предупреждение:
[WARNING] The POM for org.eclipse.m2e:lifecycle-mapping:jar:1.0.0 is missing, no dependency information available
[WARNING] Failed to retrieve plugin descriptor for org.eclipse.m2e:lifecycle-mapping:1.0.0: Plugin org.eclipse.m2e:lifecycle-mapping:1.0.0 or one of its dependencies could not be resolved: Failed to read artifact descriptor for org.eclipse.m2e:lifecycle-mapping:jar:1.0.0
если я запускаю определенную задачу maven, например mvn clean install findbugs:findbugs
(Если я запускаю только mvn clean install
, тогда такого сообщения не будет)
Я знаю, что проблема в том, что этот ПОМ не существует, потому что он определен только для хранения информации о сопоставлении. (m2e отображение жизненного цикла не найдено)
В любом случае, я хочу, чтобы моя сборка была чистой, без каких-либо предупреждений, так как я могу избавиться от этой конкретной? (Мой сервер CI проверяет, что нет предупреждения.)
Я использую Maven 3.0.2 и пробовал Maven 3.0.3, но тот же результат.
Ответы
Ответ 1
Моя команда работает над этой проблемой, обернув соответствующую конфигурацию в профиле:
<profile>
<id>only-eclipse</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>
...
</configuration>
</plugin>
</plugins>
</pluginManagement>
</build>
</profile>
Ответ 2
Это известная ошибка с разрешением WONTFIX. Предлагаемое решение является самым простым на мой взгляд:
mvn archetype:generate -DgroupId=org.eclipse.m2e -DartifactId=lifecycle-mapping \
-Dversion=1.0.0 -DarchetypeArtifactId=maven-archetype-mojo
и install
этот проект.
Ответ 3
Это решение теперь устарело, я бы рекомендовал использовать решение "profile" от @ctrueden, которое является принятым ответом!
В то время как это не самое чистое решение, когда вы используете менеджера хранилища в своей компании или сами по себе, тем временем вы можете это сделать:
- Оформить заказ https://github.com/mfriedenhagen/dummy-lifecycle-mapping-plugin.
- Запустите mvn install
, когда вы сами
- Запустите mvn deploy -DaltDeploymentRepository=REPO_ID::default::YOUR_THIRDPARTY_REPO_URL
, когда у вас есть менеджер хранилища, такой как Nexus или Artifactory.
- См. https://github.com/mfriedenhagen/dummy-lifecycle-mapping-plugin/blob/master/README.creole.
Отношения
Mirko
Ответ 4
Теперь теперь лучшее решение (для сообщений об ошибках только в Eclipse).
Нажмите CTR+1 на ошибке. Выполнение плагина не распространяется на конфигурацию жизненного цикла: org.codehaus.mojo: buildnumber-maven-plugin: 1.1: create-timestamp (исполнение: default-create-timestamp, phase: validate), а затем выберите эту опцию:
![enter image description here]()
Это работает с плагином org.eclipse.m2e.editor.xml_1.2.0.20120903-1050.jar
(возможно, раньше)
Ответ 5
m2eclipse 1.7.0 представил альтернативу, а именно инструкцию обработки XML.
В исходном примере вы просто "аннотируете" каждый <execution>
цели maven-processor-plugin
s process
с помощью
<?m2e execute?>
Подробнее о синтаксисе и дополнительных параметрах см. примечания к выпуску.