m2e błąd w MavenArchiver.getManifest ()

100

Widzę błąd w moim STS i nie wiem, jak go debugować. Przeszukując okolice widzę tylko niejasne odniesienia do błędu i brak rozwiązań.

Błąd:

org.apache.maven.archiver.MavenArchiver.getManifest(org.apache.maven.project.MavenProject, org.apache.maven.archiver.MavenArchiveConfiguration) pom.xml/ <maven projectName>line 1 Problem z konfiguracją Mavena

Pytanie : Czy ktoś może zasugerować, jak uzyskać więcej informacji na temat problemu, aby go dalej debugować lub jakie są możliwe rozwiązania?

Może trochę więcej kontekstu na temat funkcjonalności metody. Element javadoc powiązany z MavenArchiver.getManifest()metodą nie jest zbyt szczegółowy i nie widzę żadnego śladu stosu. Wypróbowałem kilka odświeżeń i aktualizacji projektu i powiązanych projektów, w tym wyczyszczenie mojego lokalnego repozytorium m2.

Informacje o STS :

  • Wersja: 3.7.3.RELEASE
  • Identyfikator kompilacji: 201602250940
  • Platforma: Eclipse Mars.2 (4.5.2)

Informacje m2e :

  • Wersja: 1.6.2.20150902-0002
scottmf
źródło
Prawdopodobnie konieczne byłoby przejrzenie pliku pom.xml, aby zdiagnozować problem. Kod skarży się na układ pliku pom.xml, a to nie jest błąd w oprogramowaniu Maven. Dlatego nie spodziewasz się, że zobaczysz plik dziennika błędów. Najczęstszym powodem, z jakim się spotkałem, jest błąd typograficzny w zawartości tagów lub niezgodność między tagiem początkowym i końcowym.
Bradley Ross
1
Kod kompiluje się dobrze, gdy jest uruchamiany z wiersza poleceń. Myślę, że wystąpiłby błąd, gdyby była literówka lub niezgodność tagu, prawda?
scottmf
Mimo że pierwsza odpowiedź na to pytanie SO zadziałała dla mnie, chciałbym wiedzieć, dlaczego wszystko, co widzę, to ten błąd i nie ma on kontekstu. Nie mówi, co się dzieje. po prostu wypowiada nazwę metody „MavenARchiver.getManifest” - bez tekstu błędu, nic ... nawet w przypadku zgłoszenia wyjątku. Gdzie znajdujemy pełny błąd dotyczący jakichkolwiek problemów podczas zaćmienia? Takie czerwone X są dla nas bezużyteczne. Czyj to był głupi pomysł, żeby po prostu wydrukować nazwę metody jako komunikat o błędzie i to wszystko?
Calicoder

Odpowiedzi:

196

I napotkał ten sam problem po aktualizacji maven-jar-plugindo najnowszej wersji (w momencie pisania tego tekstu) 3.0.2.
Eclipse 4.5.2zaczęło oznaczać pom.xmlplik z org.apache.maven.archiver.MavenArchiver.getManifestbłędem, a Maven > Update Project .. nie naprawiłoby tego.

Łatwe rozwiązanie: downgrade do wersji 2.6
Rzeczywiście możliwym rozwiązaniem jest powrót do wersji 2.6, kolejna aktualizacja projektu usunęłaby wtedy każdy błąd. Nie jest to jednak idealny scenariusz i możliwe jest lepsze rozwiązanie: zaktualizuj m2erozszerzenia (integracja z Eclipse Maven).

Lepsze rozwiązanie: zaktualizuj rozszerzenia Eclipse m2e
W menu Pomoc > Zainstaluj nowe oprogramowanie .. dodaj nowe repozytorium (za pomocą opcji Dodaj .. ), wskazując następujący adres URL:

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

Następnie postępuj zgodnie z instrukcjami kreatora aktualizacji. Eclipse wymagałoby wówczas ponownego uruchomienia. Później kolejny projekt aktualizacji ... w danym projekcie Maven usunąłby każdy błąd, a Twoja kompilacja Mavena mogłaby wtedy cieszyć się korzyściami z najnowszej maven-jar-pluginwersji.


Uwagi dodatkowe
Przyczyną tego problemu jest to, że począwszy od wersji 3.0.0, dany komponent, komponent maven-archiveri pokrewny plexus-archiverzostał zaktualizowany do nowszych wersji, łamiąc wewnętrzne zastosowania (poprzez odbicia) m2eintegracji z Eclipse. Jedynym rozwiązaniem jest wtedy poprawna aktualizacja Eclipse, jak opisano powyżej.
Uwaga: podczas gdy Eclipse początkowo zgłaszałby błędy, kompilacja Mavena (np. Z wiersza poleceń) działałaby doskonale, problem ten dotyczy tylko integracji Eclipse-Maven, czyli IDE.

A_Di-Matteo
źródło
3
Udało mi się obejść podobny problem, obniżając poziom maven-war-pluginz 3.0.0do 2.6.
Ben Hutchison,
1
Nie udało mi się uzyskać dostępu do witryny otto.takari.io, ale udało mi się uzyskać rozszerzenie zhttp://repo1.maven.org/maven2/.m2e/connectors/m2eclipse-mavenarchiver/0.17.2/N/LATEST/
azurefrog
3
Dla Eclipse Mars działa poprawnie: repo1.maven.org/maven2/.m2e/connectors/m2eclipse-mavenarchiver/… . Umieść go w Instaluj -> Praca z polem „Enter”. Sprawdź rozszerzenia m2e na liście (tylko jeden wybór).
hariprasad
1
Działa również z „Mars.2”.
Pino
16

Znalazłem odpowiedź! Zajrzałem do pom pod kątem wszelkich wtyczek, które są zależne od maven-archiwizera i stwierdziłem, że wtyczka maven-jar-robi to. Używał najnowszej wersji 3.0.0. Kiedy obniżyłem wersję do 2.6, wydaje się, że rozwiązuje problem :-)

scottmf
źródło
14

Miałem ten sam problem z projektem butów sprężynowych. Rozwiązaniem było obniżenie wersji jar maven-jar-plugin z 3.2 do 2.6. musiałem tylko dodać to do projektu pom:

<properties>        
    <maven-jar-plugin.version>2.6</maven-jar-plugin.version>
</properties>
Ala Messaoudi
źródło
11

Miałem dokładnie ten sam problem. Moje środowisko było:

  • Spring STS 3.7.3.RELEASE
  • Identyfikator kompilacji: 201602250940
  • Platforma: Eclipse Mars.2 (4.5.2)

Do objawów tych problemów były:

  1. W moim pliku PM pojawiła się czerwona flaga błędu. a opis błędu był zgodny z opisem w zadanym tutaj pierwotnym pytaniu.
  2. Znane były problemy z kompilacją w kilku plikach Java w projekcie, ale eclipse nadal nie pokazywał ich jako oznaczonych jako błąd w okienku edytora ani w drzewie eksploratora projektu po lewej stronie.

Rozwiązanie (opisane powyżej) dotyczące aktualizacji rozszerzeń m2e działało u mnie.

Lepsze rozwiązanie (moja rekomendacja):

Ravi Rajamiyer
źródło
to był dokładny konflikt wtyczek
Maven, na który
7

Miałem ten sam problem z projektem butów sprężynowych. Rozwiązaniem było obniżenie wersji zależności spring-boot-starter-parent z 2.0.0.RELEASE do 1.5.10.RELEASE (możesz przejść do dowolnej stabilnej wersji)

z:

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

do

<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
źródło
7

Miałem również do czynienia z tym samym problemem i został on rozwiązany poprzez zmianę wersji z 3.2.0 na 2.6, jak pokazano poniżej we fragmencie pom.xml

<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
źródło
0

Zmierzyłem się również z podobnymi problemami, zmieniając wersję z 2.0.0.RELEASE na 1.5.10.RELEASE zadziałało dla mnie, spróbuj przed obniżeniem wersji mavena

<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
źródło
-1

Wykonaj czynności podane w tym łączu . U mnie to zadziałało.

Krok - 1 Kliknij prawym przyciskiem myszy swój projekt w Eclipse

Krok - 2 Kliknij Właściwości

Krok - 3 Wybierz Maven na liście po lewej stronie.

Krok - 4 Zauważysz "pom.xml" w polu tekstowym Active Maven Profiles po prawej stronie. Wyczyść go i kliknij Zastosuj.

Krok - 5 Uruchom jako -> Maven clean -> Maven Install

Mam nadzieję, że to pomoże!

Mahan
źródło