2013-10-04 26 views
7

Tôi gặp sự cố nhỏ với cấu hình Maven của mình. Tất cả các câu hỏi và câu trả lời khác ở đây không giải quyết được vấn đề của tôi, vì vậy tôi bắt đầu một câu hỏi mới.Maven không sử dụng kho lưu trữ cục bộ

Vấn đề của tôi là, Maven của tôi không sử dụng kho lưu trữ cục bộ. Nó luôn tìm nạp các tạo tác từ các kho lưu trữ từ xa.

Khi một tệp phần mềm được tải xuống hoặc khi tôi tạo dự án, nó được cài đặt trong kho lưu trữ cục bộ, vì vậy đường dẫn là chính xác.

Vấn đề là: Khi tôi xây dựng một dự án SNAPSHOT, nó chỉ được cài đặt trong kho lưu trữ cục bộ (nên giống như thế này, không muốn xuất bản nó trên nexus của tôi mỗi lần). Khi tôi xây dựng một dự án khác có dự án trước đó là sự phụ thuộc vào maven pom.xml muốn tải xuống phần tạo tác từ máy chủ nexus, nơi nó không tìm thấy nó thay vì lấy nó từ kho lưu trữ cục bộ.

Đây là cấu hình maven tôi:

<?xml version="1.0" encoding="UTF-8"?> 
<settings xmlns="http://maven.apache.org/SETTINGS/1.0.0" 
      xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
      xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.0.0 http://maven.apache.org/xsd/settings-1.0.0.xsd"> 
    <localRepository>C:\Users\Marc\.m2\repository</localRepository> 
    <interactiveMode>false</interactiveMode> 
    <usePluginRegistry>false</usePluginRegistry> 
    <pluginGroups> 
    </pluginGroups> 
    <servers> 
    <server> 
     <id>releases</id> 
     <username>MY_USERNAME</username> 
     <password>MY_PASSWORD</password> 
     <filePermissions>664</filePermissions> 
     <directoryPermissions>775</directoryPermissions> 
    </server> 
    <server> 
     <id>snapshots</id> 
     <username>MY_USERNAME</username> 
     <password>MY_PASSWORD</password> 
     <filePermissions>664</filePermissions> 
     <directoryPermissions>775</directoryPermissions> 
    </server> 
    <server> 
     <id>nexus</id> 
     <username>MY_USERNAME</username> 
     <password>MY_PASSWORD</password> 
     <filePermissions>664</filePermissions> 
     <directoryPermissions>775</directoryPermissions> 
    </server> 
    </servers> 
    <profiles> 
    <profile> 
     <id>nexussrv</id> 
     <repositories> 
     <repository> 
      <id>snapshots</id> 
      <url>http://nexus/content/repositories/snapshots</url> 
      <snapshots> 
      <enabled>true</enabled> 
      <updatePolicy>always</updatePolicy> 
      </snapshots> 
      <releases> 
      <enabled>false</enabled> 
      </releases> 
     </repository> 
     <repository> 
      <id>releases</id> 
      <url>http://nexus/content/repositories/releases</url> 
      <releases> 
      <enabled>true</enabled> 
      <updatePolicy>always</updatePolicy> 
      </releases> 
      <snapshots> 
      <enabled>false</enabled> 
      </snapshots> 
     </repository> 
     <repository> 
      <id>nexus</id> 
      <url>http://nexus/content/groups/public</url> 
     </repository> 
     </repositories> 
    </profile> 
    </profiles> 
    <activeProfiles> 
    <activeProfile>nexussrv</activeProfile> 
    </activeProfiles> 
</settings> 

tải từ mối quan hệ và xuất bản hiện vật (SNAPSHOT và phát hành) đến công việc mối quan hệ với cấu hình này nhưng nó không sử dụng hiện vật từ các kho lưu trữ địa phương.

Cảm ơn sự giúp đỡ của bạn!

Trả lời

14

Bạn đã định cấu hình rằng SNAPSHOTs nên luôn luôn (<updatePolicy>always</updatePolicy>) được tải xuống từ ảnh chụp nhanh-nexus của bạn. Vì vậy, ngay cả khi bộ nhớ cache cục bộ của bạn (~/.m2/repository) có phiên bản mới hơn của ảnh chụp nhanh, maven sẽ cố tải xuống từ máy chủ được định cấu hình (http://nexus/content/repositories/snapshots).

Hãy suy nghĩ về việc thay đổi updatePolicy cho mục nhập ảnh chụp nhanh. Ví dụ. nếu bạn có máy chủ CI triển khai SNAPSHOT hàng ngày (vào buổi sáng) cho ảnh chụp nhanh, hãy thay đổi updatePolicy thành daily.

+1

mhh. Tôi đặt nó từ luôn luôn đến hàng ngày nhưng nó vẫn cố gắng để nhận nó từ nexus. –

+4

Như đã đề cập, maven sau đó kiểm tra mối quan hệ một lần mỗi ngày. Điều này chỉ có thể sử dụng được, nếu bạn có một số ảnh chụp nhanh ở đó (ví dụ: nếu máy chủ CI triển khai nó). Nếu bạn sẽ không bao giờ có shnapshots trên nexus, sau đó bạn nên thiết lập updatePolicy để không bao giờ. – MrD

+1

hiện đã hoạt động chưa. cảm ơn! –

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