Errore m2e in MavenArchiver.getManifest ()


100

Vedo un errore nel mio servizio token di sicurezza e non sono sicuro di come eseguirne il debug. Cercando in giro vedo solo vaghi riferimenti all'errore e nessuna soluzione.

L'errore è:

org.apache.maven.archiver.MavenArchiver.getManifest(org.apache.maven.project.MavenProject, org.apache.maven.archiver.MavenArchiveConfiguration) pom.xml/ <maven projectName>riga 1 Problema di configurazione di Maven

Domanda : Qualcuno può dare suggerimenti su come ottenere maggiori informazioni sul problema per eseguire il debug ulteriormente o eventuali soluzioni?

Forse un po 'più di contesto su quale sia la funzionalità del metodo. Il javadoc associato al MavenArchiver.getManifest()metodo non è molto dettagliato e non c'è traccia dello stack che vedo. Ho provato diversi aggiornamenti e aggiornamenti del progetto e dei progetti associati, inclusa la cancellazione del mio repository m2 locale.

Informazioni STS :

  • Versione: 3.7.3.RELEASE
  • ID build: 201602250940
  • Piattaforma: Eclipse Mars.2 (4.5.2)

Informazioni su m2e :

  • Versione: 1.6.2.20150902-0002

Probabilmente sarebbe necessario vedere il pom.xml per diagnosticare il problema. Il codice si lamenta del layout del file pom.xml e questo non è un errore all'interno del software Maven. Pertanto non ti aspetteresti di vedere un file di registro degli errori. Il motivo più comune che ho riscontrato è un errore tipografico nel contenuto dei tag o una mancata corrispondenza tra il tag iniziale e quello finale.
Bradley Ross

1
Il codice viene compilato correttamente quando viene eseguito dalla riga di comando. Penserei che sarebbe un errore se ci fosse un errore di battitura o una mancata corrispondenza del tag, giusto?
scottmf

Anche se la prima risposta a questa domanda SO ha funzionato per me, mi piacerebbe sapere perché tutto quello che vedo è quell'errore e non ha contesto. Non dice cosa sta succedendo. dice solo un nome di metodo "MavenARchiver.getManifest" - nessun testo di errore, niente ... nemmeno dove viene generata un'eccezione. Dove troviamo l'errore completo per qualcosa che va storto in eclipse? Queste X rosse sono inutili per noi. Di chi è stata l'idea stupida di stampare semplicemente il nome di un metodo come messaggio di errore e basta?
Calicoder

Risposte:


196

Ho incontrato lo stesso problema dopo l'aggiornamento del maven-jar-pluginalla sua ultima versione (al momento della scrittura), 3.0.2.
Eclipse ha 4.5.2iniziato a contrassegnare il pom.xmlfile con l' org.apache.maven.archiver.MavenArchiver.getManifesterrore e un Maven > Aggiorna progetto .. non lo avrebbe risolto.

Soluzione facile: downgrade alla versione 2.6
Infatti una possibile soluzione è tornare alla versione 2.6, un ulteriore aggiornamento del progetto eliminerebbe quindi ogni errore. Tuttavia, questo non è lo scenario ideale ed è possibile una soluzione migliore: aggiornare le m2eestensioni (integrazione Eclipse Maven).

Soluzione migliore: aggiorna le estensioni m2e di Eclipse
Da Aiuto > Installa nuovo software .. , aggiungi un nuovo repository (tramite l' opzione Aggiungi .. ), puntando al seguente URL:

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

Quindi segui la procedura guidata di aggiornamento come al solito. Eclipse richiederebbe quindi un riavvio. Successivamente, un ulteriore progetto di aggiornamento ... sul progetto Maven in questione rimuoverà qualsiasi errore e la tua build Maven potrebbe quindi godere dei vantaggi dell'ultima maven-jar-pluginversione.


Note aggiuntive
La ragione di questo problema è che dalla versione 3.0.0in poi, il componente in questione, il maven-archivere il relativo plexus-archiverè stato aggiornato a versioni più recenti, interrompendo gli usi interni (tramite riflessioni) m2edell'integrazione in Eclipse. L'unica soluzione è quindi aggiornare correttamente Eclipse, come descritto sopra.
Nota anche: sebbene Eclipse inizialmente segnalasse errori, la build di Maven (ad esempio dalla riga di comando) continuerebbe a funzionare perfettamente, questo problema è correlato solo all'integrazione Eclipse-Maven, cioè all'IDE.


3
Sono stato in grado di aggirare un problema simile eseguendo il downgrade maven-war-pluginda 3.0.0a 2.6.
Ben Hutchison,

1
Non sono riuscito ad accedere al sito otto.takari.io, ma sono stato in grado di ottenere l'estensione dahttp://repo1.maven.org/maven2/.m2e/connectors/m2eclipse-mavenarchiver/0.17.2/N/LATEST/
azurefrog

3
Per Eclipse Mars funziona correttamente: repo1.maven.org/maven2/.m2e/connectors/m2eclipse-mavenarchiver/… . Mettilo in Installa -> Lavora con campo, "Invio". Controlla le estensioni m2e nell'elenco (una sola scelta).
hariprasad

1
Funziona anche con "Mars.2".
Pino

16

Ho trovato la mia risposta! Ho esaminato il pom per eventuali plug-in che dipendevano da maven-archiver e ho scoperto che il plug-in maven-jar lo fa. Stava usando l'ultima versione 3.0.0. Quando ho effettuato il downgrade a 2.6, sembra che il problema sia stato risolto :-)


14

Ho avuto lo stesso problema con un progetto di avvio a molla. la soluzione era eseguire il downgrade del plugin jar maven-jar-da 3.2 a 2.6. dovevo solo aggiungere questo al progetto pom:

<properties>        
    <maven-jar-plugin.version>2.6</maven-jar-plugin.version>
</properties>

11

Ho avuto esattamente lo stesso problema. Il mio ambiente era:

  • Spring STS 3.7.3.RELEASE
  • ID build: 201602250940
  • Piattaforma: Eclipse Mars.2 (4.5.2)

I sintomi dei problemi erano:

  1. C'era un flag di errore rosso sul mio file PM. e la descrizione dell'errore era quella descritta nella domanda originale posta qui.
  2. C'erano problemi di compilazione noti nei diversi file Java nel progetto, ma eclipse non li mostrava ancora contrassegnati come errori nel riquadro dell'editor così come nell'albero di esplorazione del progetto sul lato sinistro.

La soluzione (descritta sopra) sull'aggiornamento delle estensioni m2e ha funzionato per me.

Soluzione migliore (mia raccomandazione):


questo era l'esatto conflitto di plugin di Maven che stavo soffrendo con Spring STS 3.7.3
ArifMustafa

7

Ho avuto lo stesso problema con un progetto di avvio a molla. La soluzione era eseguire il downgrade della versione delle dipendenze spring-boot-starter-parent da 2.0.0.RELEASE a 1.5.10.RELEASE (è possibile passare a qualsiasi versione stabile)

a partire dal:

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

per

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

7

Avevo anche affrontato lo stesso problema e è stato risolto cambiando la versione da 3.2.0 a 2.6 come mostrato nello snippet pom.xml di seguito

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


0

Ho anche affrontato problemi simili, cambiando la versione da 2.0.0.RELEASE a 1.5.10.RELEASE ha funzionato per me, provalo prima di eseguire il downgrade della versione Maven

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

-1

Utilizzare i passaggi indicati in questo collegamento . Ha funzionato per me.

Passaggio: 1 Fare clic con il pulsante destro del mouse sul progetto in Eclipse

Passaggio - 2 Fare clic su Proprietà

Passaggio 3 Selezionare Maven nell'elenco a sinistra.

Passaggio 4 Noterai "pom.xml" nella casella di testo Profili Maven attivi sul lato destro. Cancellalo e fai clic su Applica.

Passaggio - 5 Esegui come -> Maven clean -> Maven Install

Spero che sia d'aiuto!

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.