Trong phiên bản Maven trước 2.1, không có phương tiện để định cấu hình ứng dụng thành thời gian chờ, nhưng bạn có thể định cấu hình để kiểm tra bản cập nhật ít thường xuyên hơn nếu bạn đặt chính sách cập nhật. Điều này giải quyết một phần vấn đề.
Ví dụ:
<repository>
<id>myrepo</id>
<url>http://maven.mycompany.com/m2</url>
<releases>
<enabled>true</enabled>
<updatePolicy>daily</updatePolicy>
</releases>
<snapshots>
<enabled>false</enabled>
<updatePolicy>always</updatePolicy>
</snapshots>
</repository>
giá trị hợp lệ là:
- luôn - luôn luôn kiểm tra khi Maven là bắt đầu cho các phiên bản mới hơn của ảnh chụp nhanh
- không bao giờ - không bao giờ kiểm tra cho các phiên bản từ xa mới hơn. Sau khi tắt cập nhật thủ công có thể được thực hiện.
- hàng ngày (mặc định) - kiểm tra trên đường chạy trốn đầu tiên trong ngày (giờ địa phương)
- khoảng: XXX - kiểm tra từng XXX phút
xem xét khác là phần mềm bạn đang sử dụng để lưu trữ kho nội bộ của bạn . Với một người quản lý kho lưu trữ như Nexus, bạn có thể quản lý tất cả các kết nối kho lưu trữ từ xa bên ngoài của mình thông qua trình quản lý và định cấu hình thời gian chờ cho các kết nối từ xa đó. Sau đó, khách hàng của bạn sẽ chỉ truy vấn trình quản lý kho lưu trữ, ứng dụng sẽ phản hồi nhanh chóng khi thời gian chờ cho phép.
Cập nhật:
Nếu bạn biết sự phụ thuộc sẽ không được phục vụ bởi một kho lưu trữ đặc biệt, bạn có thể tách nó thành một hồ sơ, vì vậy nó không được tham chiếu trong xây dựng đó.
<profiles>
<profile>
<id>remote</id>
<repositories>
<repository>
<id>central</id>
<url>http://repo1.maven.org</url>
<releases><enabled>true</enabled></releases>
<snapshots><enabled>false</enabled></snapshots>
</repository>
...
</repositories>
</profile>
<profile>
<id>internal</id>
<repositories>
<repository>
<id>myrepo</id>
<url>http://maven.mycompany.com/m2</url>
<releases><enabled>true</enabled></releases>
<snapshots><enabled>false</enabled></snapshots>
</repository>
...
</repositories>
</profile>
</profiles>
Với cấu hình trên, chạy gói mvn -Premote sẽ không kết nối với kho lưu trữ nội bộ, vì vậy thời gian chờ sẽ không là một yếu tố.
Bạn có thể tránh được việc phải xác định các cấu hình trên từng xây dựng bằng cách thêm một số cấu hình các thiết lập của bạn:
<settings>
...
<activeProfiles>
<activeProfile>internal</activeProfile>
<activeProfile>remote</activeProfile>
</activeProfiles>
...
</settings>
Đối với Maven 2.1 bạn có thể đặt thời gian chờ bằng cách thêm một cấu hình trên máy chủ trong phần cài đặt Maven (~/.m2/settings.xml
theo mặc định), ví dụ:
<server>
<id>myrepo</id>
<configuration>
<timeout>5000</timeout> <!-- 5 seconds -->
</configuration>
</server>
Nguồn
2009-07-22 22:04:13
có vẻ như http://www.jroller.com/mrdon/entry/making_maven_2_not_suck đã có một số lần thử, nhưng tôi không thể tìm cách sử dụng nó. – rado