Ищите сценарий очистки репозитория Maven (unix) для сборок Snapshot (дисковое пространство) - PullRequest
0 голосов
/ 06 апреля 2011

Итак, у нас есть собственный частный репозиторий Maven, в который мы публикуем сборки снимков.

У нас много сборок, поэтому дисковое пространство начинает становиться проблемой для всех наших сборок снимков. В то время как это забавно, и все, что нужно делать вручную, делайте это, мне было интересно, знает ли кто-нибудь сценарий CRON, который я могу запустить для очистки снимка.

Я знаю, что sonatype делает это для собственного репо, но я не смог найти сценарий.

Ответы [ 2 ]

3 голосов
/ 06 апреля 2011

Чтобы найти все файлы моментальных снимков, которые были обновлены более двух недель назад:

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

Перенесите это на xargs rm, и вам должно быть хорошо.

Единственное предостережение: хранилищеменеджер создаст файл metadata.xml, в котором перечислены все опубликованные ревизии.Предполагая, что вы просто используете scp для публикации и веб-сервер для извлечения, я не думаю, что этот файл существует (поэтому тот факт, что этот скрипт не затрагивает его, не должен быть проблемой).

1 голос
/ 14 июля 2012

У меня нормально работает следующий скрипт:

#!/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
...