2011-04-06 66 views
0

因此,我們有我們發佈快照建立我們自己的私有Maven倉庫。正在尋找快照Maven倉庫清理腳本(UNIX)構建(磁盤空間)

我們有很多構建,因此磁盤空間開始成爲我們所有快照構建的問題。雖然它的樂趣和所有去手動做到這一點我不知道是否有人cron腳本,我可以運行做快照清理知道。

我知道sonatype這樣做是爲了自己的回購,但我找不到腳本。

回答

3

進行分析,結果兩個多星期前更新的所有快照文件:

find . -type f -mtime +14 | grep SNAPSHOT 

管,爲xargs rm,你應該是好的。

一個警告:存儲庫管理器將創建一個metadata.xml文件,其中列出所有已發佈的修訂。假設你僅僅使用scp發佈和網絡服務器來檢索,我不認爲文件存在(這樣的事實,這個腳本不接觸它不應該是一個問題)。

+0

BTW,已經使用的Nexus的免費版本,我不認爲我會永遠回到一個簡單的倉庫......其實,我我家的機器上運行它。 – Anon 2011-04-06 18:40:22

+2

這裏的問題是,它會刪除那些超過2周齡快照的最後一個版本(或多麼漫長您選擇。)試圖找出一種方式來獲得它獨自離開的最後一個版本。 – Lincoln 2011-08-23 20:48:53

1

下面的腳本能正常工作對我來說:

#!/bin/sh 
REPO=/var/www/maven2/snapshots 
find $REPO -type d -name '*-SNAPSHOT' | while read project; do 
    if [ -f $project/maven-metadata.xml ]; then # Make sure this is a maven artifact directory 
      # Assume that snapshot numbering is designed to be sorted numerically 
      latestversion=$(ls $project | grep -v 'maven-metadata.*' | sort -n | grep '\.pom$' | tail -n1) 
      latestversion=$(basename $latestversion .pom) 
      # Delete everything, but the latest version and the maven metadata 
      find $project -type f | grep -v -e 'maven-metadata.*' -e "$latestversion.*" | xargs rm 
    fi 
done