2014-06-19 37 views
5

Tôi đã tạo một thư viện nhỏ, cho phép gọi nó là lib. Nó dependends trên một thư viện, sublib trong đó có sẵn trong Maven Trung ương:IntelliJ không tải phụ thuộc transitive trong dự án maven

lib/pom.xml:

<dependencies> 
    <dependency> 
     <groupId>3rdparty</groupId> 
     <artifactId>sublib</artifactId> 
     <version>x</version> 
    </dependency> 
</dependencies> 

Bây giờ tôi đang cố gắng sử dụng lib trong dự án của tôi proj. Tôi đã thiết lập nó như là một sự phụ thuộc:

proj/pom.xml:

<dependencies> 
    <dependency> 
     <groupId>mynamespace</groupId> 
     <artifactId>lib</artifactId> 
     <version>y</version> 
    </dependency> 
</dependencies> 

Khi tôi chạy mvn exec:java -D exec.mainClass=mynamespace.proj.Main chương trình chạy tốt. Tuy nhiên nếu tôi chạy nó từ IntelliJ, tôi nhận được lỗi sau:

java.lang.NoClassDefFoundError: 3rdparty/SomeSubLibClass 
    at mynamespace.SomeLibClass.method(SomeLibClass.java:100) 

Điều này dường như chỉ ra rằng IntelliJ không tải phụ thuộc bắc cầu sublib. Làm thế nào tôi có thể sửa lỗi này?

+1

Đôi khi tôi phải nhấp chuột phải vào tệp 'pom.xml' trong cây tệp và chọn' maven> reimport'. (Trong trường hợp bạn không thử điều này) – kuporific

+0

@kuporific Cảm ơn, đã sửa nó! Tôi đã thử "đồng bộ hóa" và các tùy chọn tương tự nhưng đã không tìm thấy được nêu ra ... Nếu bạn làm cho nó thành một câu trả lời tôi sẽ chấp nhận nó – dtech

+0

Trong bối cảnh này "đồng bộ hóa" có nghĩa là "đồng bộ hóa với hệ thống tập tin" đó là không- trực quan nếu bạn có Maven trên não. – kuporific

Trả lời

6

Bạn có thể nhấp chuột phải vào tệp pom.xml trong cây tệp và chọn maven > reimport.

Đôi khi bạn sẽ thấy cửa sổ bật lên cho biết "Các dự án Maven cần được nhập"; bạn nên chọn Enable Auto-Import.

Maven auto import popup

Tùy chọn này có thể được tìm thấy trong Preferences > Maven > Importing > [x] Import Maven projects automatically (và bỏ chọn theo mặc định):

enter image description here

+0

Tự động nhập được bật, do đó, không khắc phục được sự cố – dtech

+0

Tôi muốn tò mò nếu có ai có ý tưởng để giải quyết vấn đề này khi nhập lại KHÔNG khắc phục được sự cố. – spacemanaki

0

gì làm việc đối với tôi là thay đổi từ việc sử dụng maven (Intellij) phiên bản và sử dụng mới nhất của tôi phiên bản đã được cài đặt trên máy của tôi trước đó.

Các vấn đề liên quan