Kho lưu trữ nội bộ của chúng tôi (Artifactory) hiện chứa cả phiên bản ổn định cũng như các phiên bản SNAPSHOT của các thư viện nội bộ của chúng tôi.Maven không nhận được SNAPSHOT bản dựng từ kho lưu trữ
Đối với các bản dựng ổn định, chưa bao giờ có vấn đề tải xuống bất kỳ thứ gì từ kho lưu trữ.
Tuy nhiên, khi tôi thêm một -SNAPSHOT, Maven tuyên bố là không thể tìm thấy sự phụ thuộc, mặc dù nó là chắc chắn nhất trong kho.
Nếu tôi xây dựng và triển khai phụ thuộc cục bộ (tức là vào repo địa phương của tôi) tất cả hoạt động bình thường.
Về cơ bản, công trình này:
<dependency>
<groupId>com.example</groupId>
<artifactId>ourlibrary</artifactId>
<version>1.0.0</version>
</dependency>
và điều này không:
<dependency>
<groupId>com.example</groupId>
<artifactId>ourlibrary</artifactId>
<version>1.0.1-SNAPSHOT</version>
</dependency>
Mặc dù cả hai phiên bản được xây dựng theo cùng một cách và triển khai (như xa như tôi có thể có thể nói) một cách chính xác vào kho lưu trữ.
Lỗi:
Missing:
----------
1) com.example:ourlibrary:jar:1.0.1-SNAPSHOT,
Try downloading the file manually from the project website.
Then, install it using the command:
mvn install:install-file -DgroupId=com.example -DartifactId=ourlibrary -Dversion=1.0.1-SNAPSHOT, -Dpackaging=jar -Dfile=/path/to/file
Alternatively, if you host your own repository you can deploy the file there:
mvn deploy:deploy-file -DgroupId=com.example -DartifactId=ourlibrary -Dversion=1.0.1-SNAPSHOT, -Dpackaging=jar -Dfile=/path/to/file -Durl=[url] -DrepositoryId=[id]
Path to dependency:
1) com.example:product:war:2.0.0-SNAPSHOT
2) com.example:ourlibrary:jar:1.0.1-SNAPSHOT,
Trong khi điều này nghe có vẻ giống với this câu hỏi, độ phân giải đến nay có không áp dụng cho trường hợp của tôi.
Mọi thông tin chi tiết về vấn đề này sẽ được đánh giá rất nhiều.
Sửa
Chạy với -X (như John V. gợi ý) tiết lộ như sau:
[DEBUG] Skipping disabled repository central
[DEBUG] ourlibrary: using locally installed snapshot
[DEBUG] Skipping disabled repository central
[DEBUG] Using mirror: http://repo.example.com/repo (id: repo.example.com)
[DEBUG] Artifact not found - using stub model: Unable to download the artifact from any repository
com.example:ourlibrary:pom:1.0.1-SNAPSHOT
from the specified remote repositories:
repo.example.com (http://repo.example.com/repo)
[DEBUG] Using defaults for missing POM com.example:ourlibrary:pom:1.0.1-SNAPSHOT:compile
[DEBUG] com.example:ourlibrary:jar:1.0.1-SNAPSHOT:compile (selected for compile)
Tôi không khai báo repo trong POM, nhưng được chỉ định trong cài đặt maven rằng repo của chúng tôi là phổ dụng (*) gương.Không nên là đủ (nó chắc chắn là đủ cho việc xây dựng ổn định)? Thêm một khai báo rõ ràng cho POM dường như giải quyết vấn đề. – Kris
Rất tiếc, tôi đã không thực hiện quá nhiều công việc với tệp settings.xml cho các kho lưu trữ. Tôi đã bao gồm chúng trong một pom cha mẹ, vì vậy bất kỳ nhà phát triển bắt đầu nhu cầu mới không phải lo lắng về settings.xml trong trường hợp kho lưu trữ phải thay đổi (mà nó thực sự có cho chúng tôi) –
Tôi nghĩ rằng tôi đã lý luận điều này. Đối với các bản dựng ổn định, Maven sẽ mặc định là 'trung tâm' mà cài đặt gương của tôi chuyển hướng đến kho lưu trữ của chúng tôi. Đối với các bản dựng SNAPSHOT không có mặc định (vì trung tâm không xử lý chúng) và trong trường hợp không có POM chỉ định một repo (mà * không * xử lý các bản dựng SNAPSHOT), nó sẽ đơn giản thất bại mà không cần tìm kiếm nó. – Kris