如果自上一个罐子制作以来没有进行任何更改,是否可以使lein uberjar
不创建jar?
作为leiningen的一个功能还是使用一些bash脚本?
我的具体用例是我在一个大型项目的CMake构建系统中调用lein。
execute_process(COMMAND lein uberjar
WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR})
如果没有更改,则会跳过所有C ++源代码,但不断发布uberjars。
答案 0 :(得分:1)
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
如果您的项目具有快照依赖项,您将跳过确定是否应该从中央存储库更新快照的检查。
我怀疑你每次只是打造过去的时候会更好。