MavenArchiver.getManifest () içinde m2e hatası


100

STS'mde bir hata görüyorum ve bu hatayı nasıl ayıklayacağımı bilmiyorum. Etrafta arama yaptığımda, yalnızca hataya ilişkin belirsiz referanslar görüyorum ve çözüm yok.

Hata şudur:

org.apache.maven.archiver.MavenArchiver.getManifest(org.apache.maven.project.MavenProject, org.apache.maven.archiver.MavenArchiveConfiguration) pom.xml/ <maven projectName>line 1 Maven Yapılandırma Sorunu

Soru : Herhangi biri, daha fazla hata ayıklamak için sorun hakkında nasıl daha fazla bilgi alınacağına veya olası çözümlere ilişkin herhangi bir öneride bulunabilir mi?

Belki yöntemin işlevselliğinin ne olduğu hakkında biraz daha bağlam. MavenArchiver.getManifest()Yöntemle ilişkili javadoc çok ayrıntılı değil ve gördüğüm yığın izi yok. Yerel m2 depomu temizlemek de dahil olmak üzere proje ve ilgili projelerin birkaç yenilemesini ve güncellemesini denedim.

STS bilgisi :

  • Sürüm: 3.7.3.RELEASE
  • Yapı Kimliği: 201602250940
  • Platform: Eclipse Mars.2 (4.5.2)

m2e bilgisi :

  • Sürüm: 1.6.2.20150902-0002

Sorunu teşhis etmek için muhtemelen pom.xml dosyasını görmek gerekli olacaktır. Kod, pom.xml dosyasının düzeninden şikayet ediyor ve bu Maven yazılımındaki bir hata değil. Bu nedenle bir hata günlüğü dosyası görmeyi beklemiyorsunuz. Yaşadığım en yaygın neden, etiketlerin içeriğindeki bir yazım hatası veya başlangıç ​​ve bitiş etiketleri arasında bir uyumsuzluk.
Bradley Ross

1
Kod, komut satırından çalıştırıldığında çok iyi derlenir. Bir yazım hatası veya etiket uyuşmazlığı varsa hata yapacağını düşünürdüm, değil mi?
scottmf

Bu SO sorusunun ilk cevabı benim için işe yarasa da, neden tek gördüğümün bu hata olduğunu ve bağlamı olmadığını bilmek isterim. Ne olduğunu söylemiyor. sadece bir yöntem adı "MavenARchiver.getManifest" diyor - hata metni yok, hiçbir şey yok ... herhangi bir istisna atılsa bile. Tutulma sırasında yanlış giden herhangi bir şey için tam hatayı nerede bulabiliriz? Bu tür kırmızı X'ler bizim için işe yaramaz. Bir yöntem adını hata mesajı olarak yazdırmak kimin aptalca fikriydi ve hepsi bu?
Calicoder

Yanıtlar:


197

maven-jar-pluginEn son sürümüne (yazarken) güncelledikten sonra aynı sorunla karşılaştım 3.0.2.
Eclipse 4.5.2, pom.xmldosyayı org.apache.maven.archiver.MavenArchiver.getManifesthatayla işaretlemeye başladı ve bir Maven > Güncelleme Projesi .. bunu düzeltmedi.

Kolay çözüm: 2.6 sürümüne düşürme
Gerçekten de olası bir çözüm, sürüme geri dönmektir 2.6, projenin daha fazla güncellenmesi herhangi bir hatayı ortadan kaldıracaktır. Ancak bu ideal bir senaryo değildir ve daha iyi bir çözüm mümkündür: m2euzantıları güncelleyin (Eclipse Maven entegrasyonu).

Daha iyi bir çözüm: güncelleme Eclipse M2E uzantıları
itibaren Yardım > Yeni Yazılım Yükleme .. (aracılığıyla yeni depo eklemek Ekle .. aşağıdaki URL'ye işaret opsiyon):

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

Ardından güncelleme sihirbazını her zamanki gibi izleyin. Eclipse daha sonra yeniden başlatma gerektirecektir. Daha sonra, ilgili Maven projesinde .. başka bir Güncelleme Projesi herhangi bir hatayı ortadan kaldırır ve Maven yapınız daha sonra en son maven-jar-pluginsürümün avantajlarından yararlanabilir .


İlave notlar
bu konuda nedeni sürümden olmasıdır 3.0.0üzerine, söz konusu bileşenin, maven-archiverve ilgili plexus-archiverbir (yansımaları yoluyla) iç kullanımlarını kırarak, yeni sürümlere yükseltme edilmiştir m2eEclipse entegrasyon. Bu durumda tek çözüm, yukarıda açıklandığı gibi Eclipse'i düzgün şekilde güncellemektir.
Ayrıca unutmayın: Eclipse başlangıçta hataları rapor ederken, Maven yapısı (örneğin komut satırından) mükemmel çalışmaya devam eder, bu sorun yalnızca Eclipse-Maven entegrasyonu, yani IDE ile ilgilidir.


3
Ben downgrading benzer bir sorunu gidermek başardı maven-war-plugingelen 3.0.0etmek 2.6.
Ben Hutchison

1
Otto.takari.io sitesine erişemedim, ancak uzantıyıhttp://repo1.maven.org/maven2/.m2e/connectors/m2eclipse-mavenarchiver/0.17.2/N/LATEST/
azurefrog

3
Eclipse Mars düzgün çalışması için: repo1.maven.org/maven2/.m2e/connectors/m2eclipse-mavenarchiver/… . Bunu Yükle -> Çalışma alanına girin, 'Enter'. Listedeki m2e Uzantılarını kontrol edin (yalnızca bir seçenek).
hariprasad

1
"Mars.2" ile de çalışır.
Pino

16

Cevabımı buldum! Maven-arşivleyiciye bağımlı olan herhangi bir eklenti için pom'a baktım ve maven-jar-eklentisinin yaptığını buldum. En son 3.0.0 sürümünü kullanıyordu. 2.6'ya düşürdüğümde sorunu çözmüş gibi görünüyor :-)


14

Bir yaylı önyükleme projesinde aynı sorunu yaşadım. çözüm, jar maven-jar-eklentisini 3.2'den 2.6'ya düşürmekti. Bunu projeye eklemem gerekiyordu pom:

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

11

Ben tam olarak aynı problem vardı. Benim ortam oldu:

  • Bahar STS 3.7.3. YAYIN
  • Yapı Kimliği: 201602250940
  • Platform: Eclipse Mars.2 (4.5.2)

Belirtiler sorunların idi:

  1. PM dosyamda kırmızı bir hata bayrağı vardı. ve hatanın açıklaması burada sorulan orijinal soruda açıklandığı gibidir.
  2. Projedeki birkaç Java dosyasında bilinen derleme sorunları vardı, ancak tutulma, sol taraftaki proje gezgini ağacının yanı sıra düzenleyici bölmesinde de bunları hata olarak işaretlenmiş olarak göstermiyordu.

M2e uzantılarını güncellemeyle ilgili çözüm (yukarıda açıklanmıştır) benim için çalıştı.

Daha iyi çözüm (tavsiyem):


bu, Spring STS 3.7.3 ile yaşadığım tam maven eklenti çatışmasıydı
ArifMustafa

7

Bir yaylı önyükleme projesinde aynı sorunu yaşadım. Çözüm, spring-boot-starter-parent bağımlılık sürümünü 2.0.0.RELEASE'ten 1.5.10.RELEASE'e düşürmekti (herhangi bir kararlı sürüme geçebilirsiniz)

from:

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

-e

<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

Ben de aynı sorunla karşı karşıya olduğunu ve onu değiştirmekle çözülür var versiyonunu den 3.2.0 için 2,6 pom.xml pasajı aşağıda gösterildiği gibi

<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

Ben de gelen sürümünü değiştirerek, benzer sorunları karşılaştığı 2.0.0.RELEASE için 1.5.10.RELEASE benim için çalıştı, maven sürümünü sürüme geçiş yapmadan önce lütfen deneyin

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

0

Aşağıdaki kodu ekleyerek bu hatayı pom.xml'de çözdüm

spring-rest-demo org.apache.maven.plugins maven-war-eklentisi 2.6

0

Ben de aynı sorunla karşılaştım ve POM.xml'deki sürüm öğesini gösteri olarak yorumlayarak çözüldü.

org.apache.maven.archiver.[MavenArchiver](https://maven.apache.org/shared/maven-archiver/apidocs/org/apache/maven/archiver/MavenArchiver.html).getManifest(org.apache.maven.project.MavenProject, org.apache.maven.archiver.MavenArchiveConfiguration)

<plugins>
  <plugin>
    <artifactId>maven-compiler-plugin</artifactId>
    <!-- <version>3.5.1</version> -->
    <configuration>
      <source>1.7</source>
      <target>1.7</target>
    </configuration>
  </plugin>
  <plugin>
    <artifactId>maven-war-plugin</artifactId>
    <!-- <version>3.1.0</version> -->
    <configuration>
      <warSourceDirectory>WebContent</warSourceDirectory>
      <failOnMissingWebXml>false</failOnMissingWebXml>
    </configuration>
  </plugin>
</plugins>

-1

Bu bağlantıda verilen adımları kullanın . Benim için çalıştı.

Adım - 1 Eclipse'de projenize sağ tıklayın

Adım - 2 Özellikler'e tıklayın

Adım - 3 Sol taraftaki listeden Maven'i seçin.

Adım - 4 Sağ taraftaki Active Maven Profiles metin kutusunda "pom.xml" göreceksiniz. Temizle ve Uygula'yı tıklayın.

Adım - 5 Farklı Çalıştır -> Maven clean -> Maven Install

Umarım yardımcı olur!

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.