Избавиться от 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?>

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