Maven-dependency-плагин (цели "копировать-зависимости", "распаковать") не поддерживается 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


почему меня волнует, если m2eclipse не "поддерживает" эту задачу? Мэйвен знает, и это все, что меня действительно волнует. Как я могу получить эту ошибку в моем проекте, чтобы уйти?

685   8  

8 ответов:

Это, кажется, известная проблема. Вы можете поручить 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: Глобальное Затмение Переопределить

чтобы избежать изменения файлов POM, переопределение ignore может быть применено ко всей рабочей области через настройки Eclipse.

Сохраните этот файл где-нибудь на диске: https://gist.github.com/maksimov/8906462

на Eclipse/Preferences/Maven/Lifecycle Mappings перейдите к этому файлу и нажмите кнопку ОК:

Eclipse Settings

это проблема 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>

Если скопировать-зависимости, распаковка, упаковка, и т. д. важны для вашего проекта вы не должны игнорировать его. Вы должны заключить ваш <plugins> на <pluginManagement> протестировано с Eclipse Indigo SR1, maven 2.2.1

чтобы заставить его работать, вместо того, чтобы игнорировать его, вы можете установить разъем m2e для maven-dependency-plugin:
https://github.com/ianbrandt/m2e-maven-dependency-plugin

вот как бы вы это сделали в Eclipse:

  1. перейдите в окно / настройки / Maven / Discovery/
  2. введите URL каталога:http://download.eclipse.org/technology/m2e/discovery/directory-1.4.xml
  3. нажмите кнопку Открыть Каталог
  4. выберите плагин m2e-maven-dependency
  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>

У меня была такая же проблема при попытке загрузить проект Hadoop в eclipse. Я попробовал решения выше, и я считаю, что это могло бы работать в Eclipse Kepler... даже не уверен больше (пробовал слишком много вещей).

со всеми проблемами, которые у меня были, я решил перейти к Eclipse Luna, и решения выше не работали для меня.

там был еще один пост, который рекомендовал изменить ... тег для упаковки. Я начал это делать, и это "очистит" ошибки... Тем не менее, я начинаю думать, что изменения укусят меня позже - я не эксперт по Maven.

к счастью, я узнал, как удалить все ошибки. Перейдите в окно - > настройки-> Maven - > ошибка/предупреждения и измените "выполнение плагина, не охватываемое жизненным циклом..."возможность " игнорировать". Надеюсь, это поможет.

Я знаю, что это старый пост, но я боролся сегодня с этой проблемой, и я использовал шаблон с этой страницы: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 ошибка.

другой вариант-перейти на вкладку проблемы, щелкните правой кнопкой мыши на ошибке, нажмите кнопку Применить быстрое исправление. Следует создать игнорировать xml-код и применить его .файл POM для вас.

Comments

    Ничего не найдено.