Skip to content

Instantly share code, notes, and snippets.

Show Gist options
  • Save seletz/4cf61c42b477c68e9bf97980a2164045 to your computer and use it in GitHub Desktop.
Save seletz/4cf61c42b477c68e9bf97980a2164045 to your computer and use it in GitHub Desktop.
A shell script to cleanup your local maven repository. It removes all snapshot from more than 6 months
#!/bin/sh
M2_REPO=${HOME}/.m2
OLDFILES=/tmp/deleted_artifacts.txt
AGE=181 # more or less 6 months and it's a palindromic prime number, so it's cool
echo "==== To be Deleted Jars ====" >> ${OLDFILES}
find "${M2_REPO}" -name '*-SNAPSHOT*jar' -atime +${AGE} -exec dirname {} \; >> ${OLDFILES}
echo "==== To be Deleted Wars/Ears ====" >> ${OLDFILES}
find "${M2_REPO}" -name '*-SNAPSHOT*war' -atime +${AGE} -exec dirname {} \; >> ${OLDFILES}
find "${M2_REPO}" -name '*-SNAPSHOT*ear' -atime +${AGE} -exec dirname {} \; >> ${OLDFILES}
echo "==== To be Deleted APKs ====" >> ${OLDFILES}
find "${M2_REPO}" -name '*-SNAPSHOT*apk' -atime +${AGE} -exec dirname {} \; >> ${OLDFILES}
find "${M2_REPO}" -name '*-SNAPSHOT*apksources' -atime +${AGE} -exec dirname {} \; >> ${OLDFILES}
find "${M2_REPO}" -name '*-SNAPSHOT*apklib' -atime +${AGE} -exec dirname {} \; >> ${OLDFILES}
for x in `cat ${OLDFILES}`; do rm -rf "$x"; done
# Just as final cleanup.
echo "==== Empty Directories ====" >> ${OLDFILES}
find "${M2_REPO}" -type d -empty -exec rmdir {} \; >> ${OLDFILES}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment