Buộc Intellij IDEA đọc lại tất cả các phụ thuộc maven


297

Làm cách nào để buộc ý tưởng intellij đọc lại / cập nhật tất cả các phụ thuộc được chỉ định trong tệp pom?

Câu trả lời:


354

Nhấn Ctrl+ Shift+ Ađể tìm hành động và nhập "nhập lại", bạn sẽ tìm thấy "Reimport All Maven Project".

Trên máy Mac, sử dụng + + Athay thế.


1
Hãy nói rằng tôi có 5 mô-đun, tất cả chúng đều dựa trên một dự án và tôi làm điều này. Lệnh này có áp dụng cho tất cả các mô-đun, chỉ một mô-đun được chọn hay đầu tiên trong dự án khi nó chạy không?
slartibartfast

điều này đã thay đổi? Tôi không thấy bản giới thiệu lại vào 2017.1 trong Maven
Winnemucca

1
@Winnemucca Tôi vừa làm nó vào 2017.2. Chờ đợi nó kết thúc bây giờ.
mrClean

1
Tôi đã phải kích hoạt plugin Maven để làm điều này.
mã hóa

1
@Winnemucca bạn có thể nhấp chuột phải vào pom, truy cập Maven trong trình đơn thả xuống và chọn Reimport.
jones-chris

125

Mở tab / cửa sổ "Dự án Maven" và nhấp vào "Nhập lại tất cả các dự án Maven" ở góc trên bên trái bắt đầu tải lại tất cả các phụ thuộc từ kho lưu trữ của chúng. Thanh trạng thái thông báo về quá trình.

Điều gì cho phép bạn nghĩ rằng điều này không hoạt động chính xác? Có lẽ bất kỳ phụ thuộc nào không thể được tải từ kho lưu trữ?


1
chúng tôi có thói quen sử dụng phiên bản không chụp nhanh để phát triển liên tục và đôi khi phụ thuộc vào dự án chéo.
kubek2k

1
Tôi sợ vấn đề này phụ thuộc vào maven. Maven chỉ kiểm tra các bản cập nhật trên SNAPSHOT. Theo định nghĩa, các phiên bản không phải SNAPSHOT sẽ không bao giờ thay đổi, vì vậy maven không phải kiểm tra các phiên bản mới hơn phiên bản này trong kho lưu trữ cục bộ. Một giải pháp (khá thô lỗ) sẽ là xóa thư viện khỏi kho lưu trữ cục bộ trước khi gọi maven. Sau đó, nó phải tải lại thư viện.
magomi

9
Dường như việc nhập lại tất cả buộc cờ -U là những gì tôi muốn :)
kubek2k

Tôi đã nhấp chuột phải vào dự án mẹ và thực hiện Maven -> Reimport và hy vọng nó sẽ cập nhật sự phụ thuộc của tất cả trẻ em, nhưng không được. Cảm ơn giải pháp!
botchniaque

6
Để tìm tab / cửa sổ "Dự án Maven", hãy đi tới Xem> Công cụ Windows> Dự án Maven
Kevin Wheeler

64

Ngoài ra còn có một cài đặt hữu ích yêu cầu IntelliJ kiểm tra các phiên bản phụ thuộc mới ngay cả khi số phiên bản không thay đổi. Chúng tôi đã có một kho lưu trữ maven cục bộ và một dự án chụp nhanh được cập nhật một vài lần nhưng số phiên bản vẫn giữ nguyên. Vấn đề là IntelliJ / Maven đã không cập nhật dự án này vì số phiên bản cố định.

Để cho phép kiểm tra sự phụ thuộc đã thay đổi mặc dù số phiên bản không thay đổi, hãy chuyển đến tab "Dự án Maven", chọn "Cài đặt Maven" và ở đó kích hoạt "Luôn cập nhật ảnh chụp nhanh".


2
ha! cập nhật tự động trong một dự án JAVA ... Tôi sẽ phải nói rằng dự án này KHÔNG phải lúc nào cũng là người chiến thắng ... và thậm chí có thể nhăn mặt với w / Maven 3+
beauXjames 18/8/2016

@beauXjames .. điều này không hiệu quả với tôi nhưng tôi thực sự phải đối mặt với cùng một vấn đề. Làm thế nào để giải quyết điều này.
Sathesh

1
Tôi thường vào thư mục repo cục bộ ({user} \. M2 \ ...) và xóa những thư mục mà tôi biết có liên quan đến dự án của mình, sau đó để quá trình cài đặt đi ra và tìm lại chúng từ đầu để không xảy ra xung đột phiên bản
beauXjames

Từ help: "Chọn hộp kiểm này, nếu bạn muốn IntelliJ IDEA cập nhật ảnh chụp nhanh khi đồng bộ hóa." Nói cách khác, nó không hoàn toàn tự động - bạn phải Synchronize(trong menu chuột phải hoặc Ctrl-Alt-Y), nhưng việc bật tùy chọn này khiến nó lấy SNAPSHOTcác phiên bản cập nhật . CẢNH BÁO: Có thể có sự tinh tế khác liên quan, như Import Changes- điều này dường như không thể tái tạo hoàn hảo đối với tôi cho đến nay. Có lẽ đó là tất cả trong trí tưởng tượng của tôi - những gì dường như luôn luôn hoạt động là đầy đủ reimportnhư được đề xuất trong các câu trả lời khác.
tộc

36

Dành cho IntelliJ IDEA 14.0

Dự án> [tên dự án của bạn]> nhấp chuột phải> Maven> Reimport


17

Nếu việc nhập lại không hoạt động (nghĩa là không loại bỏ các phiên bản phụ thuộc cũ sau khi cập nhật pom), có thêm một cơ hội:

  • mở cài đặt dự án (CTRL + SHIFT + ALT + S)
  • trên các mô-đun, xóa tất cả các lib mà bạn muốn nhập lại (ví dụ: trùng lặp)
  • IDEA sẽ cảnh báo rằng một số vẫn còn được sử dụng, xác nhận
  • Áp dụng và chọn OK
  • sau đó nhập lại tất cả các dự án maven.

16

Nút ngoài cùng bên trái (chu kỳ màu xanh) bên dưới cũng nhập lại tất cả các dự án maven:

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


9

chạy lệnh này mvn -U clean install


3
Mặc dù đây là một giải pháp, nó cần được thực hiện từ CLI. Câu hỏi là về việc thực hiện nó từ bên trong IDEA.
Talonx

trên IDE, bạn có thể thực hiện mục tiêu maven và sử dụng lệnh ở trên mà không cần mở CLI hoặc Terminal
Babajide Apata

2
Đó là loại đánh bại mục đích của việc tích hợp maven trong IDEA.
Talonx

1
Chúng ta đang nói về tùy chọn -U, không có trong IDEA. Tùy chọn "Reimport" nghe có vẻ như vậy, nhưng thực tế không phải vậy.
Talonx

1
Tôi thấy rằng bạn đang đề cập đến việc gõ và thực hiện một mục tiêu maven, trong trường hợp đó là có thể. Tuy nhiên, tôi đã đề cập đến -U không có mặt trong menu tích hợp bên phải ("Dự án Maven").
Talonx

3

Tôi gặp vấn đề khi IntelliJ không thể biên dịch các lớp, cho rằng sự phụ thuộc giữa các dự án bị thiếu. Nhập lại dự án theo đề xuất trong câu trả lời của câu hỏi này đã không giải quyết được vấn đề. Giải pháp cho tôi là:

  1. xóa tất cả các dự án (tab dự án / nhấp chuột phải vào thư mục gốc / maven / xóa dự án);
  2. đóng trình chỉnh sửa;
  3. biên dịch tất cả các dự án với maven trên dòng lệnh;
  4. mở trình soạn thảo trên cùng một dự án;
  5. thêm các dự án vào maven một lần nữa (tab maven / thêm các dự án maven (green +) / chọn root pom);

CẢNH BÁO: trên một số dự án, bạn có thể phải tăng bộ nhớ tối đa cho nhập maven (cài đặt maven trên tab maven / Tùy chọn nhập / VM cho nhà nhập khẩu).



0

Nếu bạn đang sử dụng phạm vi phiên bản cho bất kỳ phụ thuộc nào, hãy đảm bảo rằng IntelliJ đang sử dụng Maven 3 để nhập dự án. Bạn có thể tìm thấy cài đặt này trong : Settings > Maven > Importing > Use Maven3 to import project. Nếu không, bạn có thể thấy rằng các phiên bản SNAPSHOT không được nhập chính xác.

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.