Maven-dependency-plugin (цели "копии-зависимости", "распаковка" ) не поддерживается m2e
У меня довольно простой проект Maven:
<project>
<dependencies>
...
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-dependency-plugin</artifactId>
<version>2.4</version>
<executions>
<execution>
<id>copy-dependencies</id>
<phase>package</phase>
<goals>
<goal>copy-dependencies</goal>
</goals>
<configuration>
<outputDirectory>${project.build.directory}/dependencies</outputDirectory>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
</build>
</project>
Тем не менее, я получаю следующую ошибку в m2eclipse:
Description Resource Path Location Type
maven-dependency-plugin (goals "copy-dependencies", "unpack") is not supported by m2e. pom.xml /jasperreports-test line 60 Maven Project Build Lifecycle Mapping Problem
Почему мне неинтересно, не работает ли mneclipse для этой задачи? Maven делает, и это все, что мне действительно нужно. Как я могу получить эту ошибку в моем проекте, чтобы уйти?
Ответы
Ответ 1
Кажется, это известная проблема. Вы можете указать m2e игнорировать это.
Вариант 1: pom.xml
Добавьте в свой тег <build/>
следующее:
<pluginManagement>
<plugins>
<!-- Ignore/Execute plugin execution -->
<plugin>
<groupId>org.eclipse.m2e</groupId>
<artifactId>lifecycle-mapping</artifactId>
<version>1.0.0</version>
<configuration>
<lifecycleMappingMetadata>
<pluginExecutions>
<!-- copy-dependency plugin -->
<pluginExecution>
<pluginExecutionFilter>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-dependency-plugin</artifactId>
<versionRange>[1.0.0,)</versionRange>
<goals>
<goal>copy-dependencies</goal>
</goals>
</pluginExecutionFilter>
<action>
<ignore />
</action>
</pluginExecution>
</pluginExecutions>
</lifecycleMappingMetadata>
</configuration>
</plugin>
</plugins></pluginManagement>
Вам нужно будет сделать Maven... → После этого обновить конфигурацию проекта в вашем проекте.
Подробнее: http://wiki.eclipse.org/M2E_plugin_execution_not_covered#m2e_maven_plugin_coverage_status
Вариант 2: Глобальное переопределение Eclipse
Чтобы избежать изменения ваших файлов POM, переопределение игнорирования может быть применено ко всему рабочему пространству через настройки Eclipse.
Сохраните этот файл где-нибудь на диске: https://gist.github.com/maksimov/8906462
В Eclipse/Preferences/Maven/Lifecycle Mappings
перейдите к этому файлу и нажмите OK:
Ответ 2
Это проблема M2E для Eclipse Выполнение плагина M2E не распространяется.
Чтобы решить эту проблему, все, что вам нужно сделать, - сопоставить жизненный цикл, который он не распознает, и поручить M2E выполнить его.
Вы должны добавить это после plugins
, внутри build
. Это устранит ошибку и заставит M2E распознать цель copy-depencies
maven-dependency-plugin
и сделать POM работать как ожидалось, копируя зависимости в папку каждый раз, когда Eclipse будет строить ее. Если вы просто хотите проигнорировать ошибку, измените <execute />
на <ignore />
. Не нужно включать maven-dependency-plugin
в 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.apache.maven.plugins</groupId>
<artifactId>maven-dependency-plugin</artifactId>
<versionRange>[2.0,)</versionRange>
<goals>
<goal>copy-dependencies</goal>
</goals>
</pluginExecutionFilter>
<action>
<execute />
</action>
</pluginExecution>
</pluginExecutions>
</lifecycleMappingMetadata>
</configuration>
</plugin>
</plugins>
</pluginManagement>
Ответ 3
Если для вашего проекта важны зависимости от копирования, распаковки, упаковки и т.д., вы не должны его игнорировать. Вы должны заключить свой <plugins>
в <pluginManagement>
, протестированный с помощью Eclipse Indigo SR1, maven 2.2.1
Ответ 4
Чтобы заставить его работать, вместо того, чтобы игнорировать его, вы можете установить соединитель m2e для плагина maven-dependency:
https://github.com/ianbrandt/m2e-maven-dependency-plugin
Вот как вы это сделаете в Eclipse:
Ответ 5
Несмотря на ответ от CaioToOn выше, у меня все еще были проблемы с тем, чтобы это работало изначально.
После нескольких попыток, наконец, он работает.
Вставьте мою последнюю версию здесь - надеясь, что это принесет пользу кому-то еще.
<build>
<plugins>
<!--
Copy all Maven Dependencies (-MD) into libMD/ folder to use in classpath via shellscript
-->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-dependency-plugin</artifactId>
<version>2.8</version>
<executions>
<execution>
<id>copy</id>
<phase>package</phase>
<goals>
<goal>copy-dependencies</goal>
</goals>
<configuration>
<outputDirectory>${project.build.directory}/libMD</outputDirectory>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
<!--
Above maven-dependepcy-plugin gives a validation error in m2e.
To fix that, add the plugin management step below. Per: http://stackoverflow.com/a/12109018
-->
<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.maven.plugins</groupId>
<artifactId>maven-dependency-plugin</artifactId>
<versionRange>[2.0,)</versionRange>
<goals>
<goal>copy-dependencies</goal>
</goals>
</pluginExecutionFilter>
<action>
<execute />
</action>
</pluginExecution>
</pluginExecutions>
</lifecycleMappingMetadata>
</configuration>
</plugin>
</plugins>
</pluginManagement>
</build>
Ответ 6
У меня была такая же проблема при попытке загрузить проект Hadoop в eclipse. Я пробовал решения выше, и я считаю, что это могло бы работать в Eclipse Kepler... даже не уверен в этом (попробовал слишком много вещей).
Со всеми проблемами, с которыми я столкнулся, я решил перейти к Eclipse Luna, и решения выше не работали для меня.
Появилось другое сообщение, в котором рекомендуется изменить тег... для пакета. Я начал это делать, и это "очистило" ошибки... Однако я начинаю думать, что изменения укусят меня позже - я не эксперт по Maven.
К счастью, я узнал, как удалить все ошибки. Перейдите в Window- > Preferences- > Maven- > Error/Warnings и измените параметр "Плагин, не охватываемый жизненным циклом...", на "Игнорировать". Надеюсь, что это поможет.
Ответ 7
Я знаю, что это старый пост, но сегодня я тоже столкнулся с этой проблемой, и я использовал шаблон с этой страницы: http://maven.apache.org/plugins/maven-dependency-plugin/usage.html
<project>
[...]
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-dependency-plugin</artifactId>
<version>2.7</version>
<executions>
<execution>
<id>copy</id>
<phase>package</phase>
<goals>
<goal>copy</goal>
</goals>
<configuration>
<artifactItems>
<artifactItem>
<groupId>[ groupId ]</groupId>
<artifactId>[ artifactId ]</artifactId>
<version>[ version ]</version>
<type>[ packaging ]</type>
<classifier> [classifier - optional] </classifier>
<overWrite>[ true or false ]</overWrite>
<outputDirectory>[ output directory ]</outputDirectory>
<destFileName>[ filename ]</destFileName>
</artifactItem>
</artifactItems>
<!-- other configurations here -->
</configuration>
</execution>
</executions>
</plugin>
</plugins>
</build>
[...]
</project>
и все работает отлично в m2e
1.3.1.
Когда я попытался использовать
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-dependency-plugin</artifactId>
<version>2.4</version>
<executions>
<execution>
<id>copy-dependencies</id>
<phase>package</phase>
<goals>
<goal>copy-dependencies</goal>
</goals>
<configuration>
<outputDirectory>${project.build.directory}/dependencies</outputDirectory>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
</build>
Я также получил ошибку m2e
.
Ответ 8
Еще одна опция - перейти к вкладке "Проблемы", щелкнуть правой кнопкой мыши по ошибке, нажать "Быстрое исправление". Он должен генерировать код игнорирования xml и применять его .pom файл для вас.