жизненный цикл m2e-отображение не найдено



Я пытаюсь использовать решение описано здесь чтобы решить раздражающее " выполнение плагина, не охватываемое конфигурацией жизненного цикла: org.codehaus.mojo:build-helper-maven-plugin:1.7: add-source (выполнение: по умолчанию, фаза: generate-sources)" когда я размещаю следующий плагин на моем pom.XML-код:

<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>build-helper-maven-plugin</artifactId>
<executions>
    <execution>
        <phase>generate-sources</phase>
        <goals><goal>add-source</goal></goals>
        <configuration>
            <sources>
                <source>src/bootstrap/java</source>
            </sources>
        </configuration>
    </execution>
</executions>
</plugin>

но когда я запускаю mvn clean install я получаю это:

причина: POM ' org.затмение.m2e: lifecycle-mapping ' не найден в репозитории: не удается загрузить артефакт из любого репозитория

кто-нибудь имеет представление о том, как сделать m2e и maven счастливыми?

226   9  

9 ответов:

The org.eclipse.m2e:lifecycle-mapping плагин на самом деле не существует. Он должен быть использован из вашего pom.xml. Таким образом, он не разрешен Maven, но может быть прочитан m2e.

но более практичным решением вашей проблемы было бы установить разъем m2e build-helper в eclipse. Вы можете установить его из Window>Preferences>Maven>Discovery>Open Catalog. Вот так build-helper-maven-plugin:add-sources будет вызван в eclipse, не имея вас, чтобы изменить ваш pom.xml.

попробуйте использовать , например :

<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>

вот пример для создания манифеста пакета во время инкрементной компиляции внутри Eclipse:

<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.apache.felix</groupId>
                                    <artifactId>maven-bundle-plugin</artifactId>
                                    <versionRange>[1.0.0,)</versionRange>
                                    <goals>
                                        <goal>manifest</goal>
                                    </goals>
                                </pluginExecutionFilter>
                                <action>
                                    <execute />
                                </action>
                            </pluginExecution>
                        </pluginExecutions>
                    </lifecycleMappingMetadata>
                </configuration>
            </plugin>
        </plugins>
    </pluginManagement>
    <plugins>
        <plugin>
            <artifactId>maven-compiler-plugin</artifactId>
            <version>2.3.2</version>
            <configuration>
                <source>1.6</source>
                <target>1.6</target>
                <encoding>UTF-8</encoding>
            </configuration>
        </plugin>

        <plugin>
            <groupId>org.apache.felix</groupId>
            <artifactId>maven-bundle-plugin</artifactId>
            <version>2.3.7</version>
            <extensions>true</extensions>
            <configuration>
                <instructions>
                </instructions>
            </configuration>
            <executions>
                <execution>
                    <id>manifest</id>
                    <phase>process-classes</phase>
                    <goals>
                        <goal>manifest</goal>
                    </goals>
                </execution>
            </executions>
        </plugin>
    </plugins>
</build>

versionRange требуется, если опущен m2e (по состоянию на 1.1.0) будет бросать NullPointerException.

вы можете использовать этот манекен плагин:

mvn archetype:generate -DgroupId=org.eclipse.m2e -DartifactId=lifecycle-mapping -Dversion=1.0.0 -DarchetypeArtifactId=maven-archetype-mojo

после создания проекта установки/развертывания.

вот как я это делаю: я помещаю плагин lifecycle-mapping m2e в отдельный профиль вместо раздела по умолчанию. профиль автоматически активируется во время сборки eclipse при наличии свойства m2e (вместо ручной активации в настройках.XML или иначе). это будет обрабатывать случаи m2e, в то время как командная строка maven просто пропустит профиль и плагин m2e lifecycle-mapping без каких-либо предупреждений, и все довольны.

<project>
  ...
  <profiles>
    ...
    <profile>
      <id>m2e</id>
      <!-- This profile is only active when the property "m2e.version"
        is set, which is the case when building in Eclipse with m2e. -->
      <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>...</groupId>
                        <artifactId>...</artifactId>
                        <versionRange>[0,)</versionRange>
                        <goals>
                          <goal>...</goal>
                        </goals>
                      </pluginExecutionFilter>
                      <action>

                        <!-- either <ignore> XOR <execute>,
                          you must remove the other one. -->

                        <!-- execute: tells m2e to run the execution just like command-line maven.
                          from m2e's point of view, this is not recommended, because it is not
                          deterministic and may make your eclipse unresponsive or behave strangely. -->
                        <execute>
                          <!-- runOnIncremental: tells m2e to run the plugin-execution
                            on each auto-build (true) or only on full-build (false). -->
                          <runOnIncremental>false</runOnIncremental>
                        </execute>

                        <!-- ignore: tells m2eclipse to skip the execution. -->
                        <ignore />

                      </action>
                    </pluginExecution>
                  </pluginExecutions>
                </lifecycleMappingMetadata>
              </configuration>
            </plugin>
          </plugins>
        </pluginManagement>
      </build>
    </profile>
    ...
  </profiles>
  ...
</project>

Я открыл (тривиальный) ошибка для этого на М2Э. Голосовать за это, если вы хотите, чтобы предупреждение будет хорошо...

https://bugs.eclipse.org/bugs/show_bug.cgi?id=367870

У меня была такая же проблема, где:

не найдено записей marketplace для обработки build-helper-maven-plugin: 1.8: add-source в Eclipse. Дополнительную информацию см. В справке.

и нажав на окно > настройки > Maven > обнаружение > открыть каталог кнопка не сообщит о подключении.

обновление с 7u40 до 7u45 на Centos 6.4 и OSX устраняет проблему.

Maven пытается загрузить артефакт отображения жизненного цикла m2e, который M2E использует для определения того, как обрабатывать плагины в Eclipse (добавление исходных папок и т. д.). По какой-то причине этот артефакт не может быть загружен. У вас есть подключение к интернету? Можно ли загрузить другие артефакты из репозиториев? Настройки прокси-сервера?

для получения более подробной информации от Maven, попробуйте включить m2e debug output on (настройки/Maven/Debug Output флажок), и это может дать вам более подробную информацию о том, почему это не удается загрузить из репозитория.

М2Э 1.7 появился новый синтаксис для метаданных сопоставления жизненного цикла это больше не вызывает этого предупреждения:

<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>build-helper-maven-plugin</artifactId>
<executions>
    <execution>

        <!-- This executes the goal in Eclipse on project import.
             Other options like are available, eg ignore.  -->
        <?m2e execute?>

        <phase>generate-sources</phase>
        <goals><goal>add-source</goal></goals>
        <configuration>
            <sources>
                <source>src/bootstrap/java</source>
            </sources>
        </configuration>
    </execution>
</executions>
</plugin>

это происходит из-за отсутствия конфигурации плагина (как в фреймворк Vaadin помпоном.xml комментарий):

конфигурация этого плагина используется для хранения настроек Eclipse m2e только. Он не имеет никакого влияния на саму конструкцию Maven.

<pluginManagement>
    <plugins>
        <!--This plugin's configuration is used to store Eclipse m2e ettings 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>com.vaadin</groupId>
                                <artifactId>
                                    vaadin-maven-plugin
                                </artifactId>
                                <versionRange>
                                    [7.1.5,)
                                </versionRange>
                                <goals>
                                    <goal>resources</goal>
                                    <goal>update-widgetset</goal>
                                    <goal>compile</goal>
                                    <goal>update-theme</goal>
                                    <goal>compile-theme</goal>
                                </goals>
                            </pluginExecutionFilter>
                            <action>
                                <ignore></ignore>
                            </action>
                        </pluginExecution>
                    </pluginExecutions>
                </lifecycleMappingMetadata>
            </configuration>
        </plugin>
    </plugins>
</pluginManagement>
    Ничего не найдено.

Добавить ответ:
Отменить.