khi tôi đang phát triển, tôi thường cần phải thay đổi sự phụ thuộc, nhưng tôi chưa sẵn sàng triển khai các thay đổi của mình. Ví dụ, tôi đang làm việc trên dự án Foo và tôi nhận ra rằng tôi cần thêm một phương thức vào thư viện chung. Trước khi triển khai thay đổi này vào kho lưu trữ nội bộ của chúng tôi, tôi muốn cài đặt các thay đổi cho thư viện chung (mvn install
) và biên dịch lại Foo để sử dụng thư viện chung trong kho lưu trữ cục bộ (lưu ý rằng tôi đang sử dụng tất cả các phiên bản SNAPSHOT).Tại sao maven sử dụng kho lưu trữ nội bộ của tôi trước kho lưu trữ cục bộ của tôi?
Tuy nhiên, sau khi tôi mvn install
thư viện chung của mình, khi tôi biên dịch lại Foo, nó không sử dụng thư viện chung mới - nó tiếp tục sử dụng SNAPSHOT mới nhất của thư viện chung trong kho lưu trữ nội bộ. Nếu tôi triển khai thư viện chung đã thay đổi, Foo sẽ chọn nó ngay lập tức.
Làm cách nào để tôi có được hình động đầu tiên trong kho lưu trữ cục bộ?
CẬP NHẬT: khi tệp được cài đặt vào kho lưu trữ cục bộ, tệp sẽ có tên như foo-1.0.0-SNAPSHOT.jar
, nhưng khi tôi triển khai, nó sẽ nhận được dấu thời gian foo-1.0.0-20111104.191316-23.jar
. Tôi nghĩ rằng đây là lý do tại sao các tạo tác từ xa được kéo mỗi lần. Bất kỳ ý tưởng nào tại sao mvn install
không hoạt động như mvn deploy
? Liệu nó có liên quan đến việc tôi có một kho lưu trữ snapshot được thiết lập để triển khai không?
Bạn có 'localRepository' trong [settings.xml] (http://maven.apache.org/settings.html) trỏ đến vị trí không tồn tại không? – millhouse
So sánh ngày hệ thống của bạn với ngày hệ thống repo nội bộ của bạn (ví dụ: Nexus). Nếu đó là một chặng đường dài phía trước, dấu thời gian của nó sẽ "giành chiến thắng" – millhouse