m2e Fehler in MavenArchiver.getManifest ()

100

Ich sehe einen Fehler in meinem STS und bin nicht sicher, wie ich ihn debuggen soll. Beim Durchsuchen sehe ich nur vage Hinweise auf den Fehler und keine Lösungen.

Der Fehler ist:

org.apache.maven.archiver.MavenArchiver.getManifest(org.apache.maven.project.MavenProject, org.apache.maven.archiver.MavenArchiveConfiguration) pom.xml/ <maven projectName>Zeile 1 Maven-Konfigurationsproblem

Frage : Kann jemand Vorschläge machen, wie man weitere Informationen zu dem Problem erhält, um es weiter zu debuggen, oder mögliche Lösungen?

Vielleicht etwas mehr Kontext über die Funktionalität der Methode. Das mit der MavenArchiver.getManifest()Methode verknüpfte Javadoc ist nicht sehr detailliert und es gibt keine Stapelverfolgung, die ich sehe. Ich habe mehrere Aktualisierungen und Aktualisierungen des Projekts und der zugehörigen Projekte versucht, einschließlich des Löschens meines lokalen m2-Repos.

STS Info :

  • Version: 3.7.3.FREIGABE
  • Build-ID: 201602250940
  • Plattform: Eclipse Mars.2 (4.5.2)

m2e info :

  • Version: 1.6.2.20150902-0002
scottmf
quelle
Es wäre wahrscheinlich notwendig, die pom.xml zu sehen, um das Problem zu diagnostizieren. Der Code beschwert sich über das Layout der Datei pom.xml, und dies ist kein Fehler in der Maven-Software. Sie würden daher nicht erwarten, eine Fehlerprotokolldatei zu sehen. Der häufigste Grund, den ich erlebt habe, ist ein Tippfehler im Inhalt der Tags oder eine Nichtübereinstimmung zwischen dem Start- und dem End-Tag.
Bradley Ross
1
Der Code wird problemlos kompiliert, wenn er über die Befehlszeile ausgeführt wird. Ich würde denken, es wäre ein Fehler, wenn es einen Tippfehler oder eine Tag-Nichtübereinstimmung gäbe, oder?
Scottmf
Obwohl die erste Antwort auf diese SO-Frage für mich funktioniert hat, würde ich gerne wissen, warum ich nur diesen Fehler sehe und er keinen Kontext hat. Es sagt nicht, was passiert. Es heißt nur ein Methodenname "MavenARchiver.getManifest" - kein Fehlertext, nichts ... nicht einmal dort, wo eine Ausnahme ausgelöst wird. Wo finden wir den vollständigen Fehler für einen Fehler in Eclipse? Solche roten X sind für uns nutzlos. Wessen blöde Idee war es, einfach einen Methodennamen als Fehlermeldung auszudrucken und das war's?
Calicoder

Antworten:

196

Ich bin auf dasselbe Problem gestoßen, nachdem ich die maven-jar-pluginVersion (zum Zeitpunkt des Schreibens) auf die neueste Version aktualisiert hatte 3.0.2.
Eclipse hat 4.5.2begonnen, die pom.xmlDatei mit dem org.apache.maven.archiver.MavenArchiver.getManifestFehler zu kennzeichnen, und ein Maven > Update-Projekt hat das Problem nicht behoben.

Einfache Lösung: Downgrade auf Version 2.6
Eine mögliche Lösung besteht darin, zur Version zurückzukehren 2.6. Ein weiteres Update des Projekts würde dann alle Fehler beseitigen. Dies ist jedoch nicht das ideale Szenario, und eine bessere Lösung ist möglich: Aktualisieren Sie die m2eErweiterungen (Eclipse Maven-Integration).

Bessere Lösung: Aktualisieren Sie die Eclipse m2e-Erweiterungen. Fügen
Sie unter Hilfe > Neue Software installieren .. ein neues Repository hinzu (über die Option Hinzufügen .. ) und verweisen Sie auf die folgende URL:

  • https://repo1.maven.org/maven2/.m2e/connectors/m2eclipse-mavenarchiver/0.17.2/N/LATEST/

Folgen Sie dann wie gewohnt dem Update-Assistenten. Eclipse würde dann einen Neustart erfordern. Anschließend würde ein weiteres Update-Projekt .. für das betreffende Maven-Projekt jeden Fehler beseitigen und Ihr Maven-Build könnte dann die Vorteile der neuesten maven-jar-pluginVersion nutzen.


Zusätzliche Hinweise
Der Grund für dieses Problem ist, dass 3.0.0die betreffende Komponente, die maven-archiverund die zugehörigen Komponenten ab Version auf plexus-archiverneuere Versionen aktualisiert wurden, wodurch interne Verwendungen (über Reflexionen) der m2eIntegration in Eclipse unterbrochen wurden . Die einzige Lösung besteht dann darin, Eclipse wie oben beschrieben ordnungsgemäß zu aktualisieren.
Beachten Sie auch: Während Eclipse anfänglich Fehler meldet, funktioniert der Maven-Build (z. B. über die Befehlszeile) weiterhin einwandfrei. Dieses Problem hängt jedoch nur mit der Eclipse-Maven-Integration zusammen, dh mit der IDE.

A_Di-Matteo
quelle
3
Ich konnte ein ähnliches Problem umgehen, indem ich ein Downgrade maven-war-pluginvon von 3.0.0auf durchführte 2.6.
Ben Hutchison
1
Ich konnte nicht auf die Website otto.takari.io zugreifen, aber ich konnte die Erweiterung vonhttp://repo1.maven.org/maven2/.m2e/connectors/m2eclipse-mavenarchiver/0.17.2/N/LATEST/
azurefrog
3
Für Eclipse Mars funktionieren Sie ordnungsgemäß: repo1.maven.org/maven2/.m2e/connectors/m2eclipse-mavenarchiver/… . Fügen Sie es in das Feld Installieren -> Arbeiten mit 'Enter' ein. Überprüfen Sie die m2e-Erweiterungen in der Liste (nur eine Auswahl).
Hariprasad
1
Funktioniert auch mit "Mars.2".
Pino
16

Ich habe meine Antwort gefunden! Ich habe im POM nach Plugins gesucht, die vom Maven-Archiver abhängig sind, und festgestellt, dass das Maven-Jar-Plugin dies tut. Es wurde die neueste Version 3.0.0 verwendet. Als ich auf 2.6 heruntergestuft habe, scheint es das Problem zu beheben :-)

scottmf
quelle
14

Ich hatte das gleiche Problem mit einem Spring Boot-Projekt. Die Lösung bestand darin, das jar maven-jar-plugin von 3.2 auf 2.6 herunterzustufen. ich musste dies nur zum projekt hinzufügen pom:

<properties>        
    <maven-jar-plugin.version>2.6</maven-jar-plugin.version>
</properties>
Ala Messaoudi
quelle
11

Ich hatte genau das gleiche Problem. Meine Umgebung war:

  • Feder STS 3.7.3.FREIGABE
  • Build-ID: 201602250940
  • Plattform: Eclipse Mars.2 (4.5.2)

Die Symptome der Probleme waren:

  1. In meiner PM-Datei befand sich eine rote Fehlerflagge. und die Beschreibung des Fehlers war wie in der hier gestellten ursprünglichen Frage beschrieben.
  2. Es gab bekannte Kompilierungsprobleme in den verschiedenen Java-Dateien im Projekt, aber Eclipse zeigte sie immer noch nicht als Fehler im Editorbereich sowie im Projektexplorer-Baum auf der linken Seite an.

Die oben beschriebene Lösung zum Aktualisieren der m2e-Erweiterungen hat bei mir funktioniert.

Bessere Lösung (meine Empfehlung):

  • Aktualisieren Sie die Eclipse m2e-Erweiterungen
  • Fügen Sie unter Hilfe> Neue Software installieren .. ein neues Repository hinzu (über die Option Hinzufügen ..) und verweisen Sie auf die folgende URL: https://otto.takari.io/content/sites/m2e.extras/m2eclipse-mavenarchiver/ 0,17,2 / N / NEUESTE /
  • Wählen Sie die m2e-Erweiterungen aus und akzeptieren Sie die Lizenz.
  • Nach dem Update werden Sie aufgefordert, STS neu zu starten. Das Problem verschwindet, nachdem STS wieder angezeigt wird.
Ravi Rajamiyer
quelle
Dies war der genaue Maven-Plugin-Konflikt, unter dem ich mit Spring STS 3.7.3
ArifMustafa
7

Ich hatte das gleiche Problem mit einem Spring Boot-Projekt. Die Lösung bestand darin, die Spring-Boot-Starter-Parent-Abhängigkeitsversion von 2.0.0.RELEASE auf 1.5.10.RELEASE herunterzustufen (Sie können zu jeder stabilen Version wechseln).

von:

<parent>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-parent</artifactId>
    <version>2.0.0.RELEASE</version>
    <relativePath/> <!-- lookup parent from repository -->
</parent>

zu

<parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>1.5.10.RELEASE</version>
        <relativePath/> <!-- lookup parent from repository -->
    </parent>
Saurav
quelle
7

Ich hatte auch das gleiche Problem und es wurde behoben, indem die Version von 3.2.0 auf 2.6 geändert wurde , wie im folgenden pom.xml-Snippet gezeigt

<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-war-plugin</artifactId>
    <version>2.6</version>
    <configuration>
        <warSourceDirectory>src/main/webapp</warSourceDirectory>
        <warName>Spring4MVC</warName>
        <failOnMissingWebXml>false</failOnMissingWebXml>
    </configuration>
</plugin>
Vaibhav Sharma
quelle
4

Aktualisieren Sie Ihre m2e-Erweiterungen, anstatt ein Downgrade durchzuführen.

Fügen Sie unter Hilfe> Neue Software installieren .. ein neues Repository hinzu (über die Option Hinzufügen ..).

Geben Sie den Namen Ihres Plugins an und fügen Sie den Pfad hinzu: http://repo1.maven.org/maven2/.m2e/connectors/m2eclipse-mavenarchiver/0.17.2/N/LATEST/

Sobald Sie mit der Installation fertig sind, starten Sie eclipse neu und aktualisieren Sie Ihr Projekt.

VENKAT S.
quelle
habe viele URLs ohne Glück ausprobiert, diese hat mich gerettet. Danke
Yashar
0

Ich hatte auch ähnliche Probleme: Ich habe die Version von 2.0.0.RELEASE auf 1.5.10 geändert. RELEASE hat bei mir funktioniert. Bitte versuchen Sie es, bevor Sie die Maven-Version herunterstufen

<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>1.5.10.RELEASE</version>
</parent>
<dependencies>
 <dependency>
 <groupId>org.springframework.boot</groupId>
 <artifactId>spring-boot-starter-web</artifactId>
 </dependency>  
</dependencies>
Ravindra Dandothya
quelle
-1

Führen Sie die in diesem Link angegebenen Schritte aus . Es hat bei mir funktioniert.

Schritt - 1 Klicken Sie in Eclipse mit der rechten Maustaste auf Ihr Projekt

Schritt - 2 Klicken Sie auf Eigenschaften

Schritt - 3 Wählen Sie Maven in der Liste auf der linken Seite.

Schritt - 4 Sie werden "pom.xml" im Textfeld Active Maven Profiles auf der rechten Seite sehen. Löschen Sie es und klicken Sie auf Übernehmen.

Schritt - 5 Ausführen als -> Maven sauber -> Maven installieren

Ich hoffe es hilft!

Mants
quelle