"Maven 프로젝트 업데이트"중에 내부 오류가 발생했습니다. java.lang.NullPointerException


91

Java EE 웹 프로젝트를 개발 중입니다. 종속성을 추가하려고하면이 오류 메시지가 나타납니다. Eclipse Kepler를 사용합니다.

"Maven 프로젝트 업데이트"중에 내부 오류가 발생했습니다. java.lang.NullPointerException

당신이 나를 도울 수? 감사합니다.

여기에 이미지 설명 입력


1
이클립스를 사용하고 있습니까? 전체 스택 추적을 게시 할 수 있습니까? "오류 로그"보기에서 찾을 수 있습니다.
Pablo Lascano 2013 년

작업 공간 폴더에서 .metadata를 지우면이 문제를 해결할 수 있습니다. 그러나 작업 공간의 구성이 손실됩니다. = (
페르난두 고메스

답변:


154

프로젝트에서 .settings폴더와 .project파일 을 삭제 한 다음 프로젝트를 다시 가져 와서 문제를 해결 했습니다.


5
나는 많은 것을 시도했고 나를 위해 그것을 한 .settings 폴더였습니다.
사이먼

이것은 도움이되었습니다! 그러나 동일한 작업 공간의 프로젝트에 대한 일부 pom 종속성을 해결하기 위해 작업 공간 해상도를 사용했기 때문에 작업 공간 해상도를 비활성화 한 다음 Maven 자연을 비활성화 한 다음 프로젝트에서 Maven을 다시 활성화해야했습니다.
mcolley73 2014

1
나를 위해 일한 JEP는, 그것은 또한 내가 (이 업데이트 된) 더 이상 가지고 있지 않은 구글 앱 엔진 버전으로 언급했다 표시
디터 Hubau

또한 다시 가져 오기 전에 Eclipse를 다시 시작해야했습니다.
rakmoh

Eclipse 전에 모든 .settings 파일을 삭제하고 닫는 것만으로 해결했습니다. 그런 다음 maven 업데이트를 실행했습니다.
isma.imc

25

나를 위해 Maneesh Godbole 사용자가 CodeRanch 에서 찾은 답변을 작업했습니다 .

  1. 일식을 닫습니다.
  2. "workspace"폴더로 이동합니다.
  3. 숨겨진 파일을보기위한 OS 설정이 켜져 있는지 확인하십시오.
  4. .metadata 디렉터리 식별 및 삭제
  5. 이클립스 다시 시작
  6. 프로젝트 가져 오기

1
이것은 나를 위해 일한 유일한 대답이었습니다. 시작시 .settings 및 .project 항목이 다시 생성되어 메타 데이터 폴더를 삭제할 때까지 동일한 문제가 발생했습니다. +1 & thx!
Mark W

@MarkW 내가 :-) 도움이 기뻐요
장어 리

나에게는 작동하지만 모든 작업 공간을 다시 구성해야했습니다. = (
페르난두 고메스

이클립스의 모든 설정을 삭제합니다. 레이아웃, 관점 및 색상이 모두 사라졌습니다.
Umut

6

내 모듈 중 하나에서 동일한 문제가 발생했습니다.

콘솔 / cmd에서 "mvn eclipse : eclipse"를 실행하면 문제가 해결되었습니다.


3

이 문제의 pom.xml경우 m2e 특정 라이프 사이클 매핑 구성이

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

가지고 있지 않았다 <version>1.0.0</version>부품 . Maven-> Update Project ...를 수행 할 때 스택 추적없이보고 된 NullPointerException이 발생합니다. 새로운 Import ...-> Existing Maven Projects를 사용할 때 동일한 예외가 발생했지만 스택 추적으로 위의 내용을 찾을 수있었습니다.

(Eclipse Luna Service Release 2 (4.4.2)의 m2e 1.6.1.20150625-2338에 있습니다.)


1
이것이 저의 경우였습니다. 설명 된 문제에는 여러 가지 원인이 있다고 생각합니다.
Aleksandr Erokhin 2016 년

2

경우는 삭제뿐만 아니라, 사람을 도움 .settings.project내가 삭제했다, .classpath그리고 .factorypath이클립스에 프로젝트를 성공적으로 가져올 수되기 전에.


1

org.eclipse.m2e.core.prefs 파일은 .settings 폴더에 있습니다. 당신이 문제에 직면하면

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

Eclipse에서 프로젝트를 삭제 한 다음 프로젝트에서 .settings 폴더 및 .project 파일 을 삭제 하여 프로젝트를 다시 가져온 다음 프로젝트를 다시 가져 오십시오.


이 답변은 이미 존재하고 가장 많은 찬성표를 가지고 있으므로 중복을 게시 할 필요가 없습니다.
장어 리

"org.eclipse.m2e.core.prefs"에 대해 언급 한 사람이 있습니까? 문제의 원인이 무엇인지 말하려고합니다.
Jyoti Prakash

아마도 주된 답변에 대한 코멘트는 그 이유를 논의하기에 가장 좋은
J. Allen

1

위의 방법 중 어느 것도 나를 위해 일하지 않았습니다. 이것은 Eclipse 작업 공간에 순환 종속성이 있기 때문에 발생할 수도 있습니다. 따라서 작업 공간의 다른 프로젝트에 다른 오류가있는 경우이를 수정하면이 문제가 사라집니다. 이것이 내가 오류를 제거한 방법입니다.


1

이것은 나를 도왔습니다. Project menu -> Clean... -> clean all projects


1

로컬 Maven 저장소를 삭제하면 도움이되었습니다.


1

Eclipse에는 오류 로그가 있습니다. 전체 스택 추적이 표시됩니다. 제 경우에는 잘못된 jar 파일이 java.util.zip libs와 결합되어 적절한 예외가 발생하지 않고 NullPointerException이 발생하여 발생한 것 같습니다.


필자의 경우이 시나리오는 Selenium의 javadoc JAR 몇 개 (예 : repo1.maven.org/maven2/org/seleniumhq/selenium/selenium-java/…) 에 의해 트리거되었습니다 . 에서 이클립스 m2e의 소스에서 git.eclipse.org/c/m2e/m2e-core.git/tree/org.eclipse.m2e.jdt/src/... , 당신은 getJavaDocPathInArchive 방법은 기대하지 않는 것을 알 수 있습니다 en.nextElement ()에서 NullPointerException이 발생했습니다.
Jeremy K

ZIP 파일을 열거 할 때 발생하는 "NullPointerException"은 Java 9 ( bugs.openjdk.java.net/browse/JDK-8048990 ) 에서 해결되었습니다 .
Jeremy K

1

나는 사용하고있다 :

웹 개발자를위한 Eclipse Java EE IDE.

버전 : Neon.3 릴리스 (4.6.3) 빌드 ID : 20170314-1500

나를위한 수정 / 트릭은 ~ / .m2 / repository에서 로컬 저장소를 삭제하여 로컬 종속성을 제거하고 새로운 종속성이 풀다운되는 프로젝트를 다시 빌드하는 것입니다.


0

나는 같은 문제가 있었다. 여기에서 어떤 해결책도 효과가 없었습니다. 이클립스를 완전히 재설치하고 새 작업 공간을 만들어야했습니다. 그런 다음 작동했습니다!


0

여러 프로젝트와 여러 작업 공간에서 동일한 문제가 있었지만 온라인에서 찾은 솔루션 중 어느 것도 나를 위해 일하지 않았습니다. 나는 STS를 사용하고 있고, 작동했던 유일한 것은 STS 디렉터리로 이동하여 STS.ini 파일의 맨 위에 "-clean"을 추가하는 것입니다. 그런 다음 작업 영역을 시작하고 오류없이 maven clean을 실행할 수 있습니다. (ini 파일에서 -clean 태그를 제거하여 시작할 때마다 정리되지 않도록 할 수도 있습니다)

이것이 누군가를 돕기를 바랍니다.


0

제 경우의 근본 문제는 .settings 폴더의 파일 충돌이었습니다. 따라서 .settings 폴더를 삭제하면 Maven 오류가 해결되었지만 일부 로컬 구성 파일을 유지하고 싶었습니다. 충돌을 해결 한 다음 Maven 업데이트를 다시 시도했고 작동했습니다.


0

나는 똑같은 문제가 있었다 ... 결국 해결책!

여기 이클립스 로그 :

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)

... GAE 런타임 유형을 가져 오려고 시도하는 "appengine maven wtp 플러그인"에서 나왔지만 여기서는 null 인 것 같습니다 (... getRuntimeType ()-> NPE) :

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

따라서 Eclipse를 체크인하면 Google App Engine이 표시되지만 선택하면 연결된 SDK가 없음을 알 수 있습니다. 기본 설정 / 서버 / 런타임 환경

해결책 : 스크린 샷에 빨간색으로 표시 ;-)


0

나는 이와 동일한 증상을 겪었고 위의 해결책 중 어느 것도 도움이되지 않았습니다. 마지막으로 ear 프로젝트를 eclipse로 다시 가져 와서 문제의 스택 추적을 얻었으며 "라는 Windows의 임시 디렉토리에서 디렉토리를 삭제하려는 org.eclipse.m2e.wtp.MavenDeploymentDescriptorManagement까지 추적 할 수있었습니다. .mavenDeploymentDescriptorManagement "로 인해 java.io.File.exists () 메서드에서 비합리적인 NullPointerException이 발생했습니다. 특히 코드가 동일한 변수를 사용하여 이전 메서드에서 동일한 작업을 이미 성공적으로 수행 한 후 다음없이 file.isFile ()을 호출했기 때문입니다. 문제.

파일 시스템에서이 파일을 확인한 결과 파일은 관리자 권한으로 만 액세스 할 수 있습니다. 분명히 나는 ​​실수로 관리자 콘솔에서 eclipse를 시작했습니다. 결국 Windows 탐색기에 숨겨진 파일을 표시하고 임시 파일을 수동으로 삭제하여 문제를 해결했습니다.


0

문제의 또 다른 가능한 원인입니다!

내 경우에는 다음 resource블록이 원인 이라는 것을 알았 습니다.

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

여기에는 프로젝트 폴더의 폴더가 포함되어 있습니다 ( eclipse 프로젝트 는 버전이 지정된 프로젝트 폴더 의 하위 폴더 임).

제 경우에는 블록을 제거하고 Build helper 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

이클립스를 다시 설치하고 .m2 폴더를 삭제하고 항아리를 다시 만들어야했습니다.


0

제 경우에는 문제가 다른 종속성에서 사용 된 파생 종속성의 충돌이었고 일부 파생 종속성 버전을 사용할 수 없었습니다. 다른 환경으로의 모든 것이 갑자기 중단되었습니다. 또한 버전 범위로 작업했습니다.

maven은 나 에게이 오류를 제공했습니다.

MyProject : MyProject : jar : 1.0.0 프로젝트에 대한 종속성을 해결할 수 없음 : Dependency-A : 1.0.1-> Dependency-B : 1.1.0-> Dependency-C : 1.0.0 , Dependency- 간의 버전 충돌을 해결할 수 없습니다 . X : 1.0.1-> Dependency-Y : 1.1.0-> Dependency-C : 1.0.0 , Dependency-I : 1.0.1-> Dependency-J : 1.1.0-> Dependency-C : 1.0.0

나는 위의 모든 것을 시도했지만 아무것도 작동하지 않았으므로 ...

해결책 : 모든 종속성에서 LATEST를 버전으로 사용하므로 maven은 범위의 모든 종속성을 해결할 필요가 없습니다. 종속성 중 하나를 배포하지 못하면 빌드가 실패하기 때문에 신중하게 사용해야합니다.

자신의 종속성으로 작업하는 경우에만 LATEST를 사용하는 것이 좋습니다. 그렇지 않으면 타사 향후 버전에서 일부 컴파일 또는 런타임 오류를 찾을 수 있습니다.


당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.