Maven: Lệnh cập nhật kho lưu trữ sau khi thêm phụ thuộc vào POM


256

Tôi đã thêm một phụ thuộc mới vào POM của mình.

Có một lệnh đơn giản nào tôi có thể chạy để tải phần phụ thuộc này vào kho lưu trữ của mình không?


Đối với những người đang tìm cách làm điều này trong dự án Spring Boot: sử dụng mvnwđể gọi lớp trình bao bọc. Các lệnh trên trang này làm việc với nó.
G_V

Câu trả lời:


178

mvn install (hoặc là mvn package ) sẽ luôn hoạt động.

Bạn có thể sử dụng mvn compileđể tải xuống phụ thuộc thời gian biên dịch hoặc mvn testcho thời gian biên dịch và kiểm tra phụ thuộc nhưng tôi thích cái gì đó luôn hoạt động.


2
Cảm ơn, tôi cũng phát hiện ra rằng việc thêm nó vào pom trong STS sẽ tự động tải xuống cho bạn.
JJ180

15
Câu trả lời của @Andrew Spencer chính xác hơn - chỉ mvn dependency:xxxgiải quyết các phụ thuộc và không thực hiện bất kỳ nội dung bổ sung nào - và đó là những gì câu hỏi nói về.
botchniaque

Đôi khi, 'gói mvn' có thể không cập nhật phụ thuộc. Đã xảy ra với tôi hơn một lần. Một người cần chạy 'phụ thuộc mvn: giải quyết' trong những trường hợp như vậy
Binita Bharati

1
@BinitaBharati, bạn có thể thêm một -U vào dòng lệnh Maven để buộc tải xuống phụ thuộc. Điều này hữu ích nếu Maven không tải xuống một phụ thuộc được cập nhật do hết thời gian chờ bộ đệm.
BamaPookie

1
@Kishan Đặt câu hỏi mới. Hiển thị bố cục của dự án của bạn (đặc biệt là nơi importxảy ra) và liệu bạn có sử dụng bản dựng đa mô-đun không.
Aaron Digulla

611

Nếu bạn muốn chỉ tải xuống phụ thuộc mà không làm gì khác, thì đó là:

mvn dependency:resolve

Hoặc để tải xuống một phụ thuộc duy nhất:

mvn dependency:get -Dartifact=groupId:artifactId:version

Nếu bạn cần tải xuống từ một kho lưu trữ cụ thể, bạn có thể chỉ định rằng với -DrepoUrl=...


2
Tôi gặp lỗi này khi chạy lệnh đó: [ERROR] Không thể thực hiện mục tiêu org.apache.maven.plugins: maven-Depency-plugin: 2.1: get (default-cli) trên dự án độc lập-pom: Tham số 'repositoryUrl' cho mục tiêu org.apache.maven.plugins: maven-Depency-plugin: 2.1: get bị thiếu hoặc không hợp lệ -> [Trợ giúp 1]. Chỉ định -DreposeectiveUrl = ... không hoạt động.
Chry Cheng

1
Tôi nghĩ rằng tôi đã tìm thấy giải pháp. Tham số phải là "repoUrl" chứ không phải "repositoryUrl".
Chry Cheng

Không giải quyết được vấn đề cho tôi: tôi chạy mvn package -ongay sau đó - Tôi gặp lỗi mà plugin không thể tải xuống. Chạy mvn dependency:resolve-pluginscũng không giải quyết được hoàn toàn vấn đề.
Innokenty

URL kho lưu trữ của bạn có thể bị thiếu / sai. Trong mọi trường hợp, tôi không nghĩ câu trả lời này là câu trả lời cho vấn đề bạn gặp phải. Câu trả lời này bao gồm trường hợp khi Maven có thể tìm thấy tất cả các đồ tạo tác cần thiết trong kho được cấu hình.
Andrew Spencer

Tôi không quan tâm bạn có phải là tín đồ hay không, là người theo đạo Thiên chúa hay không ... Chúa ban phước cho bạn câu trả lời đơn giản tuyệt vời này.
Salathiel Genèse

12

Tôi biết bây giờ đây là một câu hỏi cũ, nhưng đối với người dùng đang sử dụng Mavenplugin Eclipse bên dưới Windows, bạn có hai tùy chọn:

  1. Nếu bạn đã cài đặt Maven dưới dạng một ứng dụng độc lập:

    Bạn có thể sử dụng lệnh sau trong CMDđường dẫn dự án của bạn:

    mvn eclipse:eclipse

    Nó sẽ cập nhật kho lưu trữ của bạn với tất cả các lọ bị thiếu, theo các phụ thuộc của bạn trong pom.xmltệp của bạn .

  2. Nếu bạn chưa cài đặt Maven dưới dạng một ứng dụng độc lập, bạn có thể làm theo các bước sau trên nhật thực của mình:

    Nhấp chuột phải vào project-> Run As-> Run configurations.

    Sau đó chọn mavenBuild.

    Sau đó nhấp vào newnút để tạo cấu hình của loại đã chọn. Nhấp vào Duyệt không gian làm việc sau đó chọn dự án của bạn và trong mục tiêu chỉ địnheclipse:eclipse

Bạn có thể tham khảo cách chạy lệnh mvn eclipse: eclipse để biết thêm chi tiết.


3
Chạy nhật thực: nhật thực sau khi phụ thuộc: giải quyết giúp tôi thấy các lọ đã tải xuống trong nhật thực, cảm ơn!
Anatoly Yakimchuk

2
Mặc dù câu trả lời này sẽ giúp người dân nghèo mắc kẹt với Eclipse, tôi thực sự khuyên mọi người sử dụng Eclipse nên tìm một giải pháp thay thế tốt hơn. Đặc biệt là nếu bạn sẽ sử dụng Maven. Netbeans và IntelliJ là những năm ánh sáng phía trước.
64BitBob

@ 64BitBob Giả sử Netbeans và IntelliJ tốt hơn nhật thực, chúng ta nên luôn đưa ra giải pháp cho những người sử dụng nó. :)
cнŝdk

Tôi thấy rằng plugin không còn khả dụng trên thị trường nữa nhưng vâng, nó hoạt động trong Eclipse 2020 mà không cần tải xuống bất cứ thứ gì. Tôi tự hỏi nếu mvn nhật thực: nhật thực là lệnh được gửi bởi chính nhật thực khi chúng ta nhấp chuột phải-> Maven-> Cập nhật dự án ...
Paolo

@Paolo Theo tôi, họ đã tự động thêm plugin trong các phiên bản mới của Eclipse và vâng tôi nghĩ đó là lệnh tương tự đằng sau tùy chọn "Cập nhật dự án".
cнŝdk

1

Hãy chú ý đến phạm vi phụ thuộc của bạn Tôi gặp phải vấn đề khi tôi gọi trình biên dịch sạch qua Intellij, pom sẽ được tải xuống, nhưng jar thì không. Có một tệp xxx.jar.lastUpdated được tạo. Sau đó nhận ra rằng phạm vi phụ thuộc là thử nghiệm, nhưng tôi đã kích hoạt biên dịch. Tôi đã xóa các repos và kích hoạt thử nghiệm mvn và vấn đề đã được giải quyết.


-4

Phải, nhấp vào dự án. Chuyển đến Maven -> Cập nhật dự án.

Các phụ thuộc sẽ tự động được cài đặt.


Đây là cách thực hiện trong Eclipse.
dùng1364368

đôi khi, và cuối cùng, không hoạt động, một số lệnh như gói mvn, cài đặt, phụ thuộc: giải quyết có thể giải quyết vấn đề của bạn
Sham Fiorin
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.