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