Ocorreu um erro interno durante: “Atualizando o Projeto Maven”. java.lang.NullPointerException


91

Estou desenvolvendo um projeto web Java EE. Quando tento adicionar uma dependência, esta mensagem de erro aparece. Eu uso Eclipse Kepler.

Ocorreu um erro interno durante: "Atualizando Projeto Maven". java.lang.NullPointerException

Você poderia me ajudar? Obrigado.

insira a descrição da imagem aqui


1
Você está usando o eclipse? você pode postar o rastreamento de pilha inteiro? Você pode encontrá-lo na visualização "Log de erros".
Pablo Lascano

limpe seu .metadata na pasta do espaço de trabalho, pode resolver isso. Mas você perde configurações de seu espaço de trabalho. = (
Fernando Gomes

Respostas:


152

Resolvi o meu excluindo a .settingspasta e o .projectarquivo do projeto e reimportando o projeto.


4
Tentei muitas coisas e foi a pasta .settings que fez isso por mim.
simon

Isso ajudou! Mas, como estava usando a resolução do espaço de trabalho para resolver algumas dependências de pom para um projeto no mesmo espaço de trabalho, tive que desabilitar a resolução do espaço de trabalho, desabilitar a natureza do Maven e habilitar novamente o Maven no projeto.
mcolley73

1
Jep, isso funcionou para mim, parece que também se referia a uma versão do Google App Engine que eu não tinha mais (foi atualizado)
Dieter Hubau

Também tive que reiniciar o eclipse antes de reimportar.
rakmoh

Resolvi apenas excluindo todos os arquivos .settings, fechando antes do Eclipse. Então executei uma atualização do maven.
isma.imc

25

Para mim funcionou a resposta que encontrei no CodeRanch , pelo usuário Maneesh Godbole :

  1. Fechar eclipse.
  2. Navegue até a pasta "espaço de trabalho"
  3. Certifique-se de que a configuração do seu sistema operacional para visualizar arquivos ocultos está ativada
  4. Identifique e exclua o diretório .metadata
  5. Reinicie o eclipse
  6. Projeto de importação

1
Esta foi a única resposta aqui que funcionou para mim. As entidades .settings e .project estavam sendo recriadas na inicialização, causando o mesmo problema até eu excluir a pasta de metadados. +1 & thx!
Mark W

@MarkW Fico feliz que tenha ajudado :-)
Eel Lee

Para mim funcionou, mas precisei reconfigurar todo o meu espaço de trabalho. = (
Fernando Gomes

ele exclui todas as minhas configurações no eclipse. Layout, perspectivas e cores se foram.
Umut de

6

Tive o mesmo problema em um dos meus módulos.

Executar "mvn eclipse: eclipse" no console / cmd resolveu o problema para mim.


3

Em nossa instância deste problema, tínhamos pom.xmlarquivos onde a configuração de mapeamento de ciclo de vida específico de m2e

<pluginManagement>
    <plugins>
        <plugin>
            <groupId>org.eclipse.m2e</groupId>
            <artifactId>lifecycle-mapping</artifactId>
            <version>1.0.0</version>
            <configuration>
                <lifecycleMappingMetadata>
...

não tinha o <version>1.0.0</version> parte. Ao fazer um Maven -> Atualizar Projeto ..., isso causa a NullPointerException relatada sem um rastreamento de pilha. Ao usar um novo Import ... -> Projetos Maven existentes, a mesma exceção ocorreu, mas com um rastreamento de pilha que me levou a encontrar o acima.

(Isso é com m2e 1.6.1.20150625-2338 no Eclipse Luna Service Release 2 (4.4.2).)


1
Este foi o meu caso. Acho que o problema descrito tem muitas causas diferentes.
Aleksandr Erokhin

2

Caso ajude alguém, além de excluir .settingse .project, tive que excluir .classpathe .factorypathantes de conseguir importar o projeto com sucesso para o Eclipse.


1

O arquivo org.eclipse.m2e.core.prefs está na pasta .settings . Se você enfrentar o problema de

An internal error occurred during: "Updating Maven Project". java.lang.NullPointerException

Excluir o projeto do eclipse, em seguida, eliminando os .settings pasta e .project arquivo no projeto ->, em seguida, voltar a importar o projeto.


Esta resposta já existe e tem o maior número de votos positivos, portanto, não vejo sentido em postar uma duplicata.
Eel Lee

Alguém mencionou sobre "org.eclipse.m2e.core.prefs"? Quero dizer qual é a razão por trás do problema.
Jyoti Prakash de

Talvez um comentário sobre a resposta principal seja o melhor lugar para discutir o porquê
J. Allen

1

Isso me ajudou: Project menu -> Clean... -> clean all projects



1

O Eclipse possui um log de erros. Lá você verá o rastreamento de pilha completo. No meu caso, parece ser causado por um arquivo jar inválido combinado com as libs java.util.zip não lançando uma exceção adequada, apenas um NullPointerException.


No meu caso, esse cenário foi acionado por alguns JARs javadoc do Selenium, por exemplo, repo1.maven.org/maven2/org/seleniumhq/selenium/selenium-java/… . Na origem do Eclipse m2e em git.eclipse.org/c/m2e/m2e-core.git/tree/org.eclipse.m2e.jdt/src/… , você pode ver que o método getJavaDocPathInArchive não espera um NullPointerException de en.nextElement ().
Jeremy K

Aparentemente, a "NullPointerException" de enumerar um arquivo ZIP é tratada em Java 9 ( bugs.openjdk.java.net/browse/JDK-8048990 ).
Jeremy K

1

Estou a usar:

Eclipse Java EE IDE para desenvolvedores da web.

Versão: Lançamento Neon.3 (4.6.3) ID de compilação: 20170314-1500

A correção / truque para mim foi excluir meu repositório local em ~ / .m2 / repository para remover dependências locais e reconstruir meu projeto no qual novas dependências são retiradas.


0

Eu tive o mesmo problema. Nenhuma das soluções aqui funcionou. Tive que reinstalar completamente o eclipse e fazer um novo espaço de trabalho. Então funcionou!


0

Nenhum dos métodos acima funcionou para mim. Isso também pode surgir devido à presença de dependência circular em sua área de trabalho do eclipse. Portanto, se houver qualquer outro erro presente em qualquer um dos outros projetos em sua área de trabalho, tente consertá-lo e esse problema terá desaparecido. Foi assim que eliminei o erro.


0

Eu tive esse mesmo problema em vários projetos e vários espaços de trabalho, nenhuma das soluções que encontrei online funcionou para mim. Estou usando o STS e a única coisa que funcionou foi ir para o meu diretório STS e adicionar um "-clean" ao início do arquivo STS.ini. Você pode então iniciar sua área de trabalho e executar o maven clean sem erros. (você também pode remover a tag -clean do arquivo ini para que não limpe toda vez que você iniciá-lo)

Espero que isso ajude alguém.


0

O problema raiz no meu caso foi um conflito de arquivo na pasta .settings. Portanto, excluir a pasta .settings teria resolvido o erro do Maven, mas eu queria manter alguns dos meus arquivos de configuração locais. Resolvi o conflito, tentei uma atualização do Maven novamente e funcionou.


0

Tive o mesmo problema ... solução no final!

aqui o log do eclipse:

java.lang.NullPointerException
    at com.google.appengine.eclipse.wtp.maven.GaeRuntimeManager.getGaeRuntime(GaeRuntimeManager.java:85)
    at com.google.appengine.eclipse.wtp.maven.GaeRuntimeManager.ensureGaeRuntimeWithSdk(GaeRuntimeManager.java:55)
    at com.google.appengine.eclipse.wtp.maven.GaeFacetManager.addGaeFacet(GaeFacetManager.java:59)
    at com.google.appengine.eclipse.wtp.maven.GaeProjectConfigurator.configure(GaeProjectConfigurator.java:46)

... vem de "appengine maven wtp plugin" que tenta obter o tipo de tempo de execução GAE, mas parece ser nulo aqui (... getRuntimeType () -> NPE):

consulte a classe com.google.appengine.eclipse.wtp.maven / GaeRuntimeManager.java

  private static IRuntime getGaeRuntime(String sdkVersion) {
    IRuntime[] runtimes = ServerCore.getRuntimes();
    for (IRuntime runtime : runtimes) {
      if (runtime != null &&  **runtime.getRuntimeType()**.equals(GAE_RUNTIME_TYPE)) {

Portanto, se você fizer check-in do eclipse, o Google App Engine estará visível, mas quando você selecioná-lo, verá que nenhum SDK está associado ... Ambientes de preferência / Servidor / Runtime

SOLUÇÃO: em vermelho na imagem ;-)


0

Eu encontrei o mesmo sintoma e nenhuma das soluções acima foi útil. Eu finalmente obtive um rastreamento de pilha do problema importando o projeto ear novamente para o eclipse e fui capaz de rastrear até org.eclipse.m2e.wtp.MavenDeploymentDescriptorManagement que estava tentando excluir um diretório no diretório temporário do Windows chamado " .mavenDeploymentDescriptorManagement ", que causou uma NullPointerException irracional do método java.io.File.exists (), principalmente porque o código já havia feito a mesma coisa com sucesso em um método anterior com a mesma variável, então chamado file.isFile () sem problema.

Verificar isso no sistema de arquivos revelou que o arquivo só poderia ser acessado com privilégios de administrador. Aparentemente, em algum momento, lancei o eclipse de um console de administrador por engano. No final, apenas tornei os arquivos ocultos visíveis no Windows Explorer e excluí o arquivo temporário manualmente, o que resolveu o problema.


0

Apenas outra possível origem do problema!

Descobri que, no meu caso, foi o seguinte resourcebloqueio que o causou:

<project>
    <build>
        <resources>
            <resource>
                <directory>${basedir}/../some-folder</directory>
                <targetPath>outputFolder</targetPath>
            </resource>
        <resources>
    </build>
</project>

Ele incluía uma pasta da pasta do projeto (o projeto eclipse é uma subpasta da pasta do projeto com versão ).

No meu caso, eu poderia remover o erro removendo o bloco e substituindo-o por uma chamada para o plugin auxiliar Build Maven:

<build>
    <plugins>
        <plugin>
            <groupId>org.codehaus.mojo</groupId>
            <artifactId>build-helper-maven-plugin</artifactId>
            <version>1.9.1</version>
            <executions>
                <execution>
                    <id>my-own-very-cool-id-for-this-step</id>
                    <phase>generate-resources</phase>
                    <goals>
                        <goal>add-resource</goal>
                    </goals>
                    <configuration>
                        <resources>
                            <resource>
                                <directory>${basedir}/../some-folder</directory>
                                <targetPath>outputFolder</targetPath>
                            </resource>
                        </resources>
                    </configuration>
                </execution>
            </executions>
        </plugin>
    </plugins>
</build>

0

Tive que reinstalar o eclipse, deletar a pasta .m2 e reconstruir os jars.


0

No meu caso, o problema era um conflito de dependências derivadas que eram usadas por outras dependências, e algumas dessas versões de dependências derivadas não estavam disponíveis, talvez porque algumas implantações que esqueci de fazer porque com a resolução do espaço de trabalho tudo funcionou, mas ao mover para outro ambiente tudo quebrou de repente. E também estava trabalhando com intervalos de versão

maven estava me dando este erro:

Não foi possível resolver dependências para o projeto MyProject: MyProject: jar: 1.0.0: Não foi possível resolver o conflito de versão entre Dependency-A: 1.0.1 -> Dependency-B: 1.1.0 -> Dependency-C: 1.0.0 , Dependency- X: 1.0.1 -> Dependência-Y: 1.1.0 -> Dependência-C: 1.0.0 , Dependência-I: 1.0.1 -> Dependência-J: 1.1.0 -> Dependência-C: 1.0.0

Tentei tudo acima e nada funcionou, então ...

A SOLUÇÃO : Use LATEST como versão em todas as dependências, para que o maven não precise resolver todas as dependências em intervalos, o que deve ser usado com cuidado porque se você perder a implementação de uma das dependências o build irá falhar

Só eu sugiro que você use LATEST se estiver trabalhando com suas próprias dependências, caso contrário, em alguma versão futura de terceiros, você pode encontrar alguns erros de compilação ou tempo de execução


Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.