Команда find позволит вам найти все файлы, которые новее, чем другой файл.
Сценарий, построенный на этом, может выглядеть примерно так:
#!/bin/sh
UBERJAR=*-standalone.jar
if [ -f ${UBERJAR} ]; then
modified_files=$(find src project.clj -newer ${UBERJAR})
if [ ${#modified_files} -eq 0 ]; then
echo "Skipping uberjar because no files modified"
exit 0
fi
fi
lein uberjar
Если у вашего проекта есть зависимости от снимков, вы пропустите проверку, которая определяет, следует ли обновлять снимки из центрального репо.
Я подозреваю, что вам было бы лучше, если бы вы каждый раз получали удар по созданию уберджара.