Не удалось найти отображение жизненного цикла m2e
Я пытаюсь использовать решение описанное здесь, чтобы решить раздражающее "выполнение плагина, не охватываемое конфигурацией жизненного цикла: org.codehaus.mojo: build-helper-maven-plugin: 1.7: add-source (исполнение: default, phase: 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.eclipse.m2e: lifecycle-mapping' не найден в репозитории: невозможно загрузить артефакт из любого репозитория
Кто-нибудь знает, как сделать m2e и maven счастливыми?
Ответы
Ответ 1
Плагин org.eclipse.m2e:lifecycle-mapping
фактически не существует. Он должен использоваться из раздела <build><pluginManagement>
вашего pom.xml
. Таким образом, он не разрешен Maven, но может быть прочитан m2e.
Но более практичным решением вашей проблемы было бы установить соединительный соединитель m2e в eclipse. Вы можете установить его из Window
> Preferences
> Maven
> Discovery
> Open Catalog
. Таким образом, build-helper-maven-plugin:add-sources
будет вызван в eclipse, если вы не измените свой pom.xml
.
Ответ 2
Попробуйте использовать раздел build/pluginManagement
, например.
<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.
Ответ 3
Вы можете использовать этот фиктивный плагин:
mvn archetype:generate -DgroupId=org.eclipse.m2e -DartifactId=lifecycle-mapping -Dversion=1.0.0 -DarchetypeArtifactId=maven-archetype-mojo
После создания проекта установите/разверните его.
Ответ 4
Вот как я это делаю: я добавляю плагин m2e lifecycle-mapping в отдельный профиль вместо стандартного <build> раздел. профиль автоматически активируется во время сборки eclipse благодаря наличию свойства m2e (вместо ручной активации в settings.xml или иначе). это будет обрабатывать случаи m2e, в то время как командная строка maven просто пропустит профиль и плагин отображения жизненного цикла m2e без каких-либо предупреждений, и все будут счастливы.
<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 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>
Ответ 5
Я открыл (тривиальную) ошибку для этого при m2e. Голосуйте за него, если вы хотите, чтобы предупреждающее сообщение исчезло навсегда...
https://bugs.eclipse.org/bugs/show_bug.cgi?id=367870
Ответ 6
У меня была та же проблема, где:
Не найдено записей на рынке, чтобы обрабатывать build-helper-maven-plugin: 1.8: add-source в Eclipse. Дополнительную информацию см. В справке.
и нажав кнопку "Окно" > "Настройки" > "Maven > Открытие", откроется диалоговое окно "Нет".
Обновление с 7u40 до 7u45 на Centos 6.4 и OSX устраняет проблему.
Ответ 7
Maven пытается загрузить артефакт отображения жизненного цикла m2e, который M2E использует для определения того, как обрабатывать плагины в Eclipse (добавление исходных папок и т.д.). По какой-то причине этот артефакт не может быть загружен. У вас есть интернет-соединение? Можно ли загрузить другие артефакты из репозиториев? Настройки прокси-сервера?
Для получения более подробной информации от Maven, попробуйте отключить отладочный вывод M2E (флажок Settings/Maven/Debug Output), и он может дать вам более подробную информацию о том, почему он не может загрузить из репозитория.
Ответ 8
m2e 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>
Ответ 9
Это происходит из-за отсутствующей конфигурации плагина (согласно комментарий vaadin demo pom.xml):
Эта конфигурация плагина используется для хранения настроек Eclipse m2e только. Это не влияет на само построение Maven.
<pluginManagement>
<plugins>
<!--This plugin 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>
Ответ 10
Удивительно, но эти 3 шага помогли мне:
mvn clean
mvn package
mvn spring-boot:run
Ответ 11
этот шаг работает на меня:
1. Удалить ваш проект на затмении
2. Повторно импортировать проект
3. Удалите целевую папку в вашем проекте
4. установить mvn или mvnw