2009-08-07 26 views
18

Do cân nhắc về không gian đĩa tôi muốn chỉ giữ một phiên bản của bất kỳ ảnh chụp nhanh nào trong kho lưu trữ của mình. Thay vì giữ nhiều phiên bản có hậu tố dấu thời gianLàm thế nào để ngăn chặn Maven/Artifactory giữ Snapshots với dấu thời gian

ví dụ: ecommerce-2.3-20090806.145007-1.ear

Làm cách nào để thiết lập điều này? Đây có phải là cài đặt hoặc kho lưu trữ (Artifactory) thiết lập

Cảm ơn!

+0

Bạn có thể tìm ans về sau liên kết [http://stackoverflow.com/questions/4275466/how-do- bạn-deal-with-maven-3-timestamped-ảnh chụp nhanh-hiệu quả/38600178 # 38600178] (http://stackoverflow.com/questions/4275466/how-do-you-deal-with-maven-3-timestamped-snapshots -Cảm ơn/38600178 # 38600178) –

Trả lời

26

Cách đơn giản nhất (và recommended) là sử dụng ảnh chụp nhanh không độc đáo. Nếu bạn phải sử dụng các bức ảnh chụp độc đáo, bạn có thể làm điều này trong Artifactory bằng cách xác định <maxUniqueSnapshots> tài sản trên <localRepository> định nghĩa trong artifactory.config.xml

Ví dụ:

<localRepository> 
    <key>snapshots</key> 
    <blackedOut>false</blackedOut> 
    <handleReleases>false</handleReleases> 
    <handleSnapshots>true</handleSnapshots> 
    <maxUniqueSnapshots>1</maxUniqueSnapshots> 
    <includesPattern>**/*</includesPattern> 
    <snapshotVersionBehavior>non-unique</snapshotVersionBehavior> 
</localRepository> 

Để tham khảo bạn có thể làm điều này trong Nexus (thông qua giao diện người dùng) bằng cách thiết lập scheduled service, nó cho phép bạn chỉ định số lượng tối thiểu cần giữ lại, khoảng thời gian tối đa để giữ lại và có xóa ảnh chụp nhanh nếu phiên bản phát hành được triển khai hay không.

+0

Cảm ơn Rich - Artifactory dường như cũng cho phép bạn thay đổi các giá trị này thông qua gui - nó không phải là tài liệu quá tốt! – Pablojim

+0

Nếu bạn có tham chiếu đến bất kỳ tài liệu có liên quan nào, bạn có thể thêm tài liệu đó vào câu trả lời của mình –

+2

bằng cách sử dụng ảnh chụp không độc đáo thường là hành vi xấu vì nó rất khó để theo dõi xung đột xuống máy của nhà phát triển. Bạn nên lưu giữ dấu thời gian và sử dụng Nexus để dọn dẹp các ảnh chụp nhanh cũ. –

10

lưu ý rằng đây ĐẶC ​​/ NĂNG LỰC đã bị xóa do MAVEN 3,0

Chỉ cần thêm một cái gì đó cho câu hỏi của riêng tôi:

Thêm

<distributionManagement> 
    ... 
    <snapshotRepository> 
     ... 
     <uniqueVersion>false</uniqueVersion> 
    </snapshotRepository> 
    ... 
</distributionManagement> 

để mẹ tôi pom cũng góp phần với giải pháp này.

Xem:

http://i-proving.com/space/Jessamyn+Smith/blog/2008-06-16_1

Để thay đổi các thiết lập duy nhất trên kho trong Artifactory - đăng nhập như một quản trị viên - và chọn chỉnh sửa trên repo có liên quan - ảnh chụp màn hình ở đây:

http://wiki.jfrog.org/confluence/display/RTF/Understanding+Repositories

+1

Hành vi này đã thay đổi trong Maven 3. Xem: [Triển khai ảnh chụp nhanh không mong muốn] (https://cwiki.apache.org/MAVEN/maven-3x-compatibility-notes.html#Maven3.xCompatibilityNotes-NonuniqueSnapshotDeployments) – metasim

0

Sử dụng ảnh chụp nhanh không phải là duy nhất không phải là một cách hay để thực hiện. Thay vào đó hãy có một trình quản lý kho lưu trữ có thể dọn dẹp các ảnh chụp nhanh và định cấu hình để giữ không gian đĩa bị hỏng. Việc có các ảnh chụp nhanh được định thời gian giúp bạn dễ dàng theo dõi các vấn đề vì bạn có thể dễ dàng biết được phiên bản nào đang được sử dụng thực sự.

4

Artifactory có thể xóa các ảnh chụp nhanh độc đáo cũ. Tuy nhiên, chúng tôi đã tìm thấy ảnh chụp nhanh độc đáo không hữu ích cho mục đích theo dõi sự phụ thuộc hoặc quay trở lại phiên bản cụ thể. Có lựa chọn thay thế tốt hơn để làm điều này, đó là sạch hơn và đáng tin cậy hơn. Đó là lý do tại sao Artifactory mặc định thích ảnh chụp không độc đáo và chính sách này có thể là được kiểm soát tập trung (là duy nhất cho Artifactory). Bạn có thể đọc thêm về điều này, cũng như tính năng tự động dọn dẹp here.

1
<plugin>   
        <groupId>org.codehaus.mojo</groupId>   
        <artifactId>build-helper-maven-plugin</artifactId>   
        <version>1.7</version>   
        <executions>   
         <execution>    
          <id>remove-old-artifacts</id>    
          <phase>package</phase>    
          <goals>    
           <goal>remove-project-artifact</goal>    
          </goals>    
          <configuration> 
           <removeAll>true</removeAll><!-- When true, remove all built artifacts including all versions. When false, remove all built artifacts of this project version -->    
          </configuration>   
         </execution>   
        </executions>  
       </plugin> 
+2

Điều này sẽ chỉ dọn sạch kho lưu trữ cục bộ, chứ không phải artifactory ... – mglauche

0

sẽ không làm việc trong Maven 3 vì nó đã được trích dẫn bởi Apache dưới

It's not recommended to use non-unique snapshots since they lead to non-reproducible builds. The main use case for these was to save disk space in the repository, but this is best handled by scheduling a periodic snapshot removal task to keep the number of versions down 
Các vấn đề liên quan