erro m2e em MavenArchiver.getManifest ()

100

Estou vendo um erro em meu STS e não tenho certeza de como depurá-lo. Pesquisando, vejo apenas referências vagas ao erro e nenhuma solução.

O erro é:

org.apache.maven.archiver.MavenArchiver.getManifest(org.apache.maven.project.MavenProject, org.apache.maven.archiver.MavenArchiveConfiguration) pom.xml/ <maven projectName>linha 1 Problema de configuração do Maven

Pergunta : Alguém pode dar alguma sugestão sobre como obter mais informações sobre o problema para depurá-lo posteriormente ou quaisquer soluções possíveis?

Talvez um pouco mais de contexto sobre o que é a funcionalidade do método. O javadoc associado ao MavenArchiver.getManifest()método não é muito detalhado e não vejo rastreamento de pilha. Tentei várias atualizações e atualizações do projeto e projetos associados, incluindo a limpeza do meu repo local de m2.

Informação STS :

  • Versão: 3.7.3.RELEASE
  • Id da versão: 201602250940
  • Plataforma: Eclipse Mars.2 (4.5.2)

informação m2e :

  • Versão: 1.6.2.20150902-0002
Scottmf
fonte
Provavelmente, seria necessário ver o pom.xml para diagnosticar o problema. O código está reclamando do layout do arquivo pom.xml, e isso não é um erro do software Maven. Portanto, você não esperaria ver um arquivo de log de erros. O motivo mais comum que experimentei é um erro tipográfico no conteúdo das tags ou uma incompatibilidade entre as tags inicial e final.
Bradley Ross
1
O código compila perfeitamente quando executado a partir da linha de comando. Acho que haveria um erro se houvesse um erro de digitação ou incompatibilidade de tag, certo?
scottmf
Mesmo que a primeira resposta a essa pergunta do SO tenha funcionado para mim, gostaria de saber por que tudo o que vejo é esse erro e não há contexto. Não diz o que está acontecendo. ele apenas diz um nome de método "MavenARchiver.getManifest" - nenhum texto de erro, nada ... nem mesmo onde qualquer exceção é lançada. Onde encontramos o erro completo para qualquer coisa que dê errado no eclipse? Esses Xs vermelhos são inúteis para nós. De quem foi a ideia idiota de apenas imprimir o nome de um método como uma mensagem de erro e pronto?
Calicoder

Respostas:

196

Encontrei o mesmo problema depois de atualizar o maven-jar-pluginpara sua versão mais recente (no momento da escrita) 3.0.2,.
O Eclipse 4.5.2começou a sinalizar o pom.xmlarquivo com o org.apache.maven.archiver.MavenArchiver.getManifesterro e um Maven > Atualizar projeto .. não corrigiu.

Solução fácil: fazer downgrade para a versão 2.6
De fato, uma solução possível é voltar para a versão 2.6, uma nova atualização do projeto removeria qualquer erro. No entanto, esse não é o cenário ideal e uma solução melhor é possível: atualizar as m2eextensões (integração Eclipse Maven).

Melhor solução: atualize as extensões Eclipse m2e
Em Ajuda > Instalar Novo Software .. , adicione um novo repositório (por meio da opção Adicionar .. ), apontando para a seguinte URL:

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

Em seguida, siga o assistente de atualização normalmente. O Eclipse então exigiria uma reinicialização. Posteriormente, um novo projeto de atualização .. no projeto Maven em questão removeria qualquer erro e sua construção do Maven poderia então aproveitar os benefícios da maven-jar-pluginversão mais recente.


Notas adicionais
A razão para este problema é que a partir da versão 3.0.0, o componente em questão, oe maven-archivero relacionado plexus-archiverfoi atualizado para versões mais novas, quebrando os usos internos (via reflexos) da m2eintegração no Eclipse. A única solução é atualizar adequadamente o Eclipse, conforme descrito acima.
Observe também: embora o Eclipse inicialmente relatasse erros, o build do Maven (por exemplo, da linha de comando) continuaria funcionando perfeitamente, esse problema está relacionado apenas à integração Eclipse-Maven, ou seja, ao IDE.

A_Di-Matteo
fonte
3
Consegui solucionar um problema semelhante fazendo o downgrade maven-war-pluginde 3.0.0para 2.6.
Ben Hutchison
1
Não consegui acessar o site otto.takari.io, mas consegui obter a extensão dehttp://repo1.maven.org/maven2/.m2e/connectors/m2eclipse-mavenarchiver/0.17.2/N/LATEST/
azurefrog
3
Para o Eclipse Mars funcionar corretamente: repo1.maven.org/maven2/.m2e/connectors/m2eclipse-mavenarchiver/… . Coloque-o em Instalar -> Campo Trabalhar com, 'Enter'. Verifique as extensões m2e na lista (apenas uma opção).
hariprasad
1
Funciona também com "Mars.2".
Pino
16

Eu encontrei minha resposta! Procurei no pom por plug-ins que dependam do maven-archiver e descobri que o maven-jar-plugin tem. Ele estava usando a versão 3.0.0 mais recente. Quando fiz o downgrade para 2.6, parece que resolveu o problema :-)

Scottmf
fonte
14

Tive o mesmo problema com um projeto de bota de mola. a solução foi fazer o downgrade do jar maven-jar-plugin de 3.2 para 2.6. eu só tinha que adicionar isso ao pom do projeto:

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

Eu tive exatamente o mesmo problema. Meu ambiente era:

  • Spring STS 3.7.3.RELEASE
  • Id da versão: 201602250940
  • Plataforma: Eclipse Mars.2 (4.5.2)

Os sintomas dos problemas foram:

  1. Havia um sinalizador de erro vermelho no meu arquivo PM. e a descrição do erro foi conforme descrito na pergunta original feita aqui.
  2. Havia problemas de compilação conhecidos nos vários arquivos Java do projeto, mas o eclipse ainda não os mostrava sinalizados como erro no painel do editor, bem como na árvore do explorador de projetos no lado esquerdo.

A solução (descrita acima) sobre atualizar as extensões m2e funcionou para mim.

Melhor solução (minha recomendação):

Ravi Rajamiyer
fonte
esse era exatamente o conflito de plug-in maven que eu estava sofrendo com Spring STS 3.7.3
ArifMustafa
7

Tive o mesmo problema com um projeto de bota de mola. A solução foi fazer o downgrade da versão de dependência spring-boot-starter-parent de 2.0.0.RELEASE para 1.5.10.RELEASE (você pode mudar para qualquer versão estável)

de:

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

para

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

Eu também enfrentei o mesmo problema e foi resolvido alterando a versão de 3.2.0 para 2.6 conforme mostrado no snippet pom.xml abaixo

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

Eu também enfrentei problemas semelhantes, mudar a versão 2.0.0.RELEASE para 1.5.10.RELEASE funcionou para mim, por favor, tente antes de fazer o downgrade da versão 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>
Ravindra Dandothya
fonte
-1

Use as etapas fornecidas neste link . Funcionou para mim

Passo - 1 Clique com o botão direito em seu projeto no Eclipse

Etapa - 2 Clique em Propriedades

Etapa - 3 Selecione Maven na lista do lado esquerdo.

Passo - 4 Você notará "pom.xml" na caixa de texto Perfis ativos do Maven no lado direito. Limpe-o e clique em Aplicar.

Etapa - 5 Executar como -> Maven limpo -> Instalação do Maven

Espero que ajude!

Mants
fonte