This is a Java application that will traverse a maven repository directory hierarchy and delete all deployed snapshot artifacts except for the snapshot version currently in the maven-metadata.xml files.
The program is intended to clean up snapshot repositories created with “mvn deploy” either using “file:” or “ftp:” URLs, and is intended to be run as a cronjob.
- Install the prerequisites
apt-get install git maven default-jdk
- Clone and build the repository snapshot pruner
cd /var/www-maven/ mkdir -p .m2 chown -R maven.maven .m2 git clone https://github.com/steinarb/maven-repository-snapshot-pruner chown -R maven.maven maven-repository-snapshot-pruner cd maven-repository-snapshot-pruner sudo -u maven git config pull.ff only
- Run the pruner once a day as that user (in the example the user with the username “maven” is used:
- Run this command as root
sudo -u maven crontab -e
- In the editor that is opened add the following line (the “>/dev/null” is to avoid nightly emails, remove it if more debugging is needed):
55 23 * * * cd /var/www-maven/maven-repository-snapshot-pruner; git pull >/dev/null; mvn compile exec:java -Duser.dir=/var/www-maven/repository >/dev/null
- Run this command as root
The license is Apache Public License v 2.0.
See the LICENSE file for details.