Đã xảy ra lỗi nội bộ trong: "Đang cập nhật dự án Maven". java.lang.NullPointerException


91

Tôi đang phát triển một dự án web Java EE. Khi tôi cố gắng thêm phần phụ thuộc, thông báo lỗi này sẽ xuất hiện. Tôi sử dụng Eclipse Kepler.

Đã xảy ra lỗi nội bộ khi: "Đang cập nhật dự án Maven". java.lang.NullPointerException

Bạn có thể giúp tôi? Cảm ơn bạn.

nhập mô tả hình ảnh ở đây


1
Bạn đang sử dụng nhật thực? bạn có thể đăng toàn bộ dấu vết ngăn xếp? Bạn có thể tìm thấy nó trong Chế độ xem "Nhật ký Lỗi".
Pablo Lascano

xóa .metadata của bạn trong thư mục không gian làm việc, có thể giải quyết điều này. Nhưng bạn mất cấu hình không gian làm việc của mình. = (
Fernando Gomes

Câu trả lời:


152

Tôi đã giải quyết vấn đề của mình bằng cách xóa .settingsthư mục và .projecttệp trong dự án, sau đó nhập lại dự án.


4
Tôi đã thử nhiều thứ và chính thư mục .settings đã làm điều đó cho tôi.
simon

Điều này đã giúp! Tuy nhiên, vì tôi đang sử dụng Độ phân giải không gian làm việc để giải quyết một số phụ thuộc pom cho một dự án trong cùng Không gian làm việc, tôi phải tắt Độ phân giải không gian làm việc, sau đó Vô hiệu hóa Bản chất của Maven, sau đó bật lại Maven trên dự án.
mcolley73

1
Jep, mà làm việc cho tôi, dường như nó cũng đã đề cập đến một phiên bản Google App Engine, tôi đã không có nữa (nó đã được cập nhật)
Dieter Hubau

Cũng phải khởi động lại nhật thực trước khi nhập lại.
rakmoh

Tôi đã giải quyết nó bằng cách xóa tất cả các tệp .settings, đóng trước Eclipse. Sau đó, tôi thực hiện cập nhật maven.
isma.imc

25

Đối với tôi, câu trả lời tôi tìm thấy trên CodeRanch , bởi người dùng Maneesh Godbole :

  1. Cận cảnh nhật thực.
  2. Điều hướng đến thư mục "không gian làm việc" của bạn
  3. Đảm bảo cài đặt trên hệ điều hành của bạn để xem các tệp ẩn được bật
  4. Xác định và xóa thư mục .metadata
  5. Khởi động lại nhật thực
  6. Nhập dự án

1
Đây là câu trả lời duy nhất ở đây phù hợp với tôi. Các phần mềm .settings và .project được tạo lại khi khởi động, gây ra vấn đề tương tự cho đến khi tôi xóa thư mục siêu dữ liệu. +1 & thx!
Mark W

@MarkW Tôi rất vui vì đã giúp :-)
Lươn Lee

Đối với tôi, nó hoạt động, nhưng tôi cần cấu hình lại tất cả không gian làm việc của mình. = (
Fernando Gomes

nó xóa tất cả các cài đặt của tôi trên nhật thực. Bố cục, phối cảnh và màu sắc đều biến mất.
Umut

6

Tôi đã gặp vấn đề tương tự ở một trong các mô-đun của mình.

Chạy "mvn eclipse: eclipse" trong bảng điều khiển / cmd đã giải quyết được vấn đề cho tôi.


3

Trong trường hợp của chúng tôi về vấn đề này, chúng tôi có pom.xmlcác tệp trong đó cấu hình ánh xạ vòng đời cụ thể theo m2e

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

không có <version>1.0.0</version>một phần. Khi thực hiện Maven -> Update Project ..., điều này gây ra NullPointerException được báo cáo mà không có dấu vết ngăn xếp. Khi sử dụng Nhập mới ... -> Dự án Maven hiện có, trường hợp ngoại lệ tương tự cũng xảy ra, nhưng với dấu vết ngăn xếp đã dẫn tôi tìm thấy ở trên.

(Đây là với m2e 1.6.1.20150625-2338 trong Bản phát hành dịch vụ Eclipse Luna 2 (4.4.2).)


1
Đây là trường hợp của tôi. Tôi đoán vấn đề được mô tả có nhiều nguyên nhân khác nhau.
Aleksandr Erokhin

2

Trong trường hợp nó giúp ích cho bất kỳ ai, ngoài việc xóa .settings.project, tôi phải xóa .classpath.factorypathtrước khi có thể nhập thành công dự án vào Eclipse.


1

tệp org.eclipse.m2e.core.prefs nằm trong thư mục .settings . Nếu bạn đối mặt với vấn đề

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

Xóa dự án từ nhật thực sau đó bằng cách xóa .settings thư mục & .project tập tin trong dự án -> sau đó tái nhập khẩu dự án.


Câu trả lời này đã tồn tại và có nhiều phiếu tán thành nhất, vì vậy tôi thấy không có ích gì khi đăng một bản sao.
Eel Lee

Có ai đã đề cập về "org.eclipse.m2e.core.prefs" không? Tôi muốn nói lý do đằng sau vấn đề là gì.
Jyoti Prakash

Có lẽ một lời nhận xét về câu trả lời chính là nơi tốt nhất để thảo luận về lý do tại sao
J. Allen

1

Điều này đã giúp tôi: Project menu -> Clean... -> clean all projects



1

Eclipse có một bản ghi lỗi. Ở đó bạn sẽ thấy toàn bộ dấu vết ngăn xếp. Trong trường hợp của tôi, nó có vẻ là do tệp jar bị lỗi kết hợp với libs java.util.zip không tạo ra một ngoại lệ thích hợp, chỉ là một NullPointerException.


Trong trường hợp của tôi, kịch bản này được kích hoạt bởi một vài JAR javadoc từ Selenium, ví dụ: repo1.maven.org/maven2/org/seleniumhq/selenium/selenium-java/… . Trong nguồn cho m2e Eclipse tại git.eclipse.org/c/m2e/m2e-core.git/tree/org.eclipse.m2e.jdt/src/… , bạn có thể thấy rằng phương thức getJavaDocPathInArchive không mong đợi một NullPointerException từ en.nextElement ().
Jeremy K

Rõ ràng là "NullPointerException" từ việc liệt kê một tệp ZIP được giải quyết trong Java 9 ( bug.openjdk.java.net/browse/JDK-8048990 ).
Jeremy K

1

Tôi đang sử dụng:

Eclipse Java EE IDE dành cho nhà phát triển web.

Phiên bản: Neon.3 Release (4.6.3) Id bản dựng: 20170314-1500

Cách khắc phục / thủ thuật đối với tôi là xóa kho lưu trữ cục bộ của tôi trong ~ / .m2 / repository để xóa các phần phụ thuộc cục bộ và xây dựng lại dự án của tôi trong đó các phần phụ thuộc mới được kéo xuống.


0

Tôi đã từng gặp vấn đề tương tự. Không có giải pháp nào ở đây hiệu quả. Tôi đã phải cài đặt lại hoàn toàn nhật thực và tạo một không gian làm việc mới. Sau đó, nó hoạt động!


0

Không có phương pháp nào ở trên hiệu quả với tôi. Điều này cũng có thể phát sinh do sự phụ thuộc vòng tròn trong không gian làm việc nhật thực của bạn. Vì vậy, nếu có bất kỳ lỗi nào khác xuất hiện trong bất kỳ dự án nào khác trong không gian làm việc của bạn, hãy cố gắng khắc phục những lỗi đó và sau đó vấn đề này sẽ biến mất. Đây là cách tôi loại bỏ lỗi.


0

Tôi đã gặp vấn đề tương tự này trên nhiều dự án và nhiều không gian làm việc, không có giải pháp nào tôi tìm thấy trực tuyến phù hợp với tôi. Tôi đang sử dụng STS và điều duy nhất hoạt động là vào thư mục STS của tôi và thêm "-clean" vào đầu tệp STS.ini. Sau đó, bạn có thể khởi động không gian làm việc của mình và chạy maven clean mà không gặp lỗi. (bạn cũng có thể xóa thẻ -clean khỏi tệp ini để thẻ không bị xóa mỗi khi bạn khởi động)

Hy vọng điều này sẽ giúp ai đó.


0

Vấn đề gốc trong trường hợp của tôi là xung đột tệp trong thư mục .settings. Vì vậy, xóa thư mục .settings sẽ giải quyết được lỗi Maven, nhưng tôi muốn giữ lại một số tệp cấu hình cục bộ của mình. Tôi đã giải quyết xung đột, sau đó thử cập nhật lại Maven và nó hoạt động.


0

Tôi đã có cùng một vấn đề ... giải pháp ở cuối!

đây là nhật ký nhật thực:

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)

... nó đến từ "appengine maven wtp plugin" cố gắng lấy loại thời gian chạy GAE, nhưng dường như ở đây không có giá trị (... getRuntimeType () -> NPE):

xem lớp 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)) {

Vì vậy, nếu bạn kiểm tra nhật thực, Google App Engine sẽ hiển thị, nhưng khi bạn chọn nó, bạn sẽ thấy không có SDK nào được liên kết ... môi trường tùy chọn / Máy chủ / Thời gian chạy

GIẢI PHÁP: màu đỏ trên ảnh chụp màn hình ;-)


0

Tôi gặp phải cùng một triệu chứng này và không có giải pháp nào ở trên hữu ích. Cuối cùng tôi đã tìm ra dấu vết ngăn xếp của sự cố bằng cách nhập lại dự án tai vào nhật thực và có thể truy tìm điều này xuống org.eclipse.m2e.wtp.MavenDeploymentDescriptorManagement đang cố gắng xóa một thư mục trong thư mục tạm thời của windows được gọi là " .mavenDeploymentDescriptorManagement ", gây ra NullPointerException không hợp lý từ phương thức java.io.File.exists (), đặc biệt là vì mã đã thực hiện thành công điều tương tự trong một phương thức trước đó với cùng một biến, sau đó được gọi là file.isFile () mà không có vấn đề.

Kiểm tra điều này trên hệ thống tệp cho thấy rằng tệp chỉ có thể được truy cập bằng các đặc quyền của quản trị viên. Rõ ràng tại một số điểm, tôi đã khởi chạy eclipse từ bảng điều khiển dành cho quản trị viên do nhầm lẫn. Cuối cùng, tôi chỉ làm cho các tệp ẩn hiển thị trong windows explorer và xóa tệp tạm thời theo cách thủ công, điều này đã giải quyết được vấn đề.


0

Chỉ là một nguồn khác có thể của vấn đề!

Tôi phát hiện ra rằng trong trường hợp của tôi, đó là resourcekhối sau đây đã gây ra nó:

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

Nó bao gồm một thư mục từ thư mục dự án ( dự án nhật thực là một thư mục con của thư mục dự án được tạo phiên bản ).

Trong trường hợp của tôi, tôi có thể xóa lỗi bằng cách xóa khối và thay thế nó bằng một lệnh gọi tới plugin 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

Tôi đã phải cài đặt lại eclipse, xóa thư mục .m2 và xây dựng lại các lọ.


0

Trong trường hợp của tôi, vấn đề là xung đột của các phụ thuộc dẫn xuất đã được sử dụng bởi các phụ thuộc khác và một số phiên bản phụ thuộc dẫn xuất đó không khả dụng, có thể do một số triển khai mà tôi quên làm vì với giải pháp không gian làm việc, mọi thứ đều hoạt động, nhưng khi di chuyển sang môi trường khác đều đột ngột bị phá vỡ. Và tôi cũng đang làm việc với phạm vi phiên bản

maven đã cho tôi lỗi này:

Không thể giải quyết các phụ thuộc cho dự án MyProject: MyProject: jar: 1.0.0: Không thể giải quyết xung đột phiên bản giữa Dependency-A: 1.0.1 -> Dependency-B: 1.1.0 -> Dependency-C: 1.0.0 , Dependency- X: 1.0.1 -> Phụ thuộc-Y: 1.1.0 -> Phụ thuộc-C: 1.0.0 , Phụ thuộc-I: 1.0.1 -> Phụ thuộc-J: 1.1.0 -> Phụ thuộc-C: 1.0.0

Tôi đã thử tất cả ở trên và không có gì hiệu quả, vì vậy ...

GIẢI PHÁP : Sử dụng LATEST làm phiên bản trong tất cả các phụ thuộc, vì vậy maven không cần phải giải quyết tất cả các phụ thuộc trong phạm vi, phải sử dụng cẩn thận vì nếu bạn bỏ lỡ triển khai một trong các phụ thuộc, bản dựng sẽ không thành công

Chỉ tôi khuyên bạn nên sử dụng LATEST nếu bạn đang làm việc với các phụ thuộc của riêng mình, nếu không trong một số phiên bản tương lai của bên thứ ba, bạn có thể tìm thấy một số lỗi biên dịch hoặc thời gian chạy


Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.