webentwicklung-frage-antwort-db.com.de

maven-dependency-plugin (ziele "copy-dependencies", "entpacken") wird von m2e nicht unterstützt

Ich habe ein ziemlich einfaches Maven-Projekt:

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

In m2Eclipse wird jedoch der folgende Fehler angezeigt:

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

Warum ist es mir wichtig, wenn m2Eclipse diese Aufgabe nicht "unterstützt"? Maven tut es und das ist alles, was mir wirklich wichtig ist. Wie kann ich diesen Fehler in meinem Projekt beheben?

154
Naftuli Kay

Es scheint ein bekanntes Problem zu sein. Sie können m2e anweisen, dies zu ignorieren.

Option 1: pom.xml

Fügen Sie Folgendes in Ihr <build/> Etikett:

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

Anschließend müssen Sie Maven ... -> Projektkonfiguration für Ihr Projekt aktualisieren.

Lesen Sie mehr: http://wiki.Eclipse.org/M2E_plugin_execution_not_covered#m2e_maven_plugin_coverage_status

Option 2: Global Eclipse Override

Um zu vermeiden, dass Ihre POM-Dateien geändert werden, kann die Ignorierüberschreibung über die Eclipse-Einstellungen auf den gesamten Arbeitsbereich angewendet werden.

Speichern Sie diese Datei irgendwo auf der Festplatte: https://Gist.github.com/maksimov/8906462

Im Eclipse/Preferences/Maven/Lifecycle Mappings Navigieren Sie zu dieser Datei und klicken Sie auf OK:

Eclipse Settings

165
maksimov

Dies ist ein Problem von M2E für Eclipse M2E-Plugin-Ausführung nicht behandelt .

Um dieses Problem zu lösen, müssen Sie lediglich den nicht erkannten Lebenszyklus abbilden und M2E anweisen, ihn auszuführen.

Sie sollten dies nach Ihrem plugins in das build einfügen. Dies behebt den Fehler und veranlasst M2E, das Ziel copy-depencies Von maven-dependency-plugin Zu erkennen und den POM wie erwartet zum Laufen zu bringen. Bei jeder Eclipse-Erstellung werden die Abhängigkeiten in den Ordner kopiert. Wenn Sie den Fehler einfach ignorieren möchten, ändern Sie <execute /> In <ignore />. Es ist nicht erforderlich, Ihr maven-dependency-plugin Wie zuvor vorgeschlagen in pluginManagement einzufügen.

<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>
57
Caio Cunha

Wenn Abhängigkeiten beim Kopieren, Entpacken, Packen usw. für Ihr Projekt wichtig sind, sollten Sie dies nicht ignorieren. Sie müssen Ihre <plugins> im <pluginManagement> getestet mit Eclipse Indigo SR1, Maven 2.2.1

38
user311174

Damit es funktioniert, anstatt es zu ignorieren, können Sie den m2e-Konnektor für das Maven-Dependency-Plugin installieren:
https://github.com/ianbrandt/m2e-maven-dependency-plugin

So würden Sie es in Eclipse machen:

  1. gehe zu Window/Preferences/Maven/Discovery /
  2. geben Sie die Katalog-URL ein: http://download.Eclipse.org/technology/m2e/discovery/directory-1.4.xml
  3. klicken Sie auf Katalog öffnen
  4. wähle das m2e-maven-dependency-plugin
  5. genießen
16
mario

Trotz der obigen Antwort von CaioToOn hatte ich anfangs immer noch Probleme, dies zum Laufen zu bringen.

Nach mehreren Versuchen hat es endlich funktioniert. Ich füge meine endgültige Version hier ein und hoffe, dass jemand anderes davon profitiert.

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

Ich hatte das gleiche Problem beim Versuch, ein Hadoop-Projekt in Eclipse zu laden. Ich habe die oben genannten Lösungen ausprobiert und glaube, dass sie in Eclipse Kepler funktioniert haben könnten ... nicht einmal mehr sicher (zu viele Versuche).

Bei all den Problemen, die ich hatte, entschloss ich mich, zu Eclipse Luna überzugehen, und die oben genannten Lösungen funktionierten bei mir nicht.

Es gab einen weiteren Beitrag, in dem empfohlen wurde, das Tag ... in package zu ändern. Ich habe damit angefangen und es würde die Fehler "beseitigen" ... Ich glaube jedoch, dass die Änderungen mich später beißen würden - ich bin kein Experte für Maven.

Zum Glück habe ich herausgefunden, wie man alle Fehler beseitigt. Gehen Sie zu Fenster-> Einstellungen-> Maven-> Fehler/Warnungen und ändern Sie die Option "Plugin-Ausführung wird nicht vom Lebenszyklus abgedeckt ..." in "Ignorieren". Ich hoffe es hilft.

1
Myluco

Ich weiß, dass dies ein alter Beitrag ist, aber ich habe heute auch mit diesem Problem zu kämpfen und die Vorlage von dieser Seite verwendet: 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>

und alles funktioniert gut unter m2e 1.3.1.

Als ich versuchte zu benutzen

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

Ich habe auch m2e Error.

0
Andna

Eine andere Möglichkeit ist, zur Registerkarte Probleme zu navigieren, mit der rechten Maustaste auf Fehler zu klicken und auf Schnellkorrektur anwenden zu klicken. Der sollte den XML-Code zum Ignorieren generieren und die POM-Datei für Sie anwenden.

0
blue-sky