当前用户缓存可以通过 CLJ_CACHE 或 CLJCONFIG 环境变量定制(以及 XDG..)
但在项目目录内,路径由以下 clojure 工具 bash 脚本中的代码设置:
`
确定是否使用用户缓存或项目缓存
if [[ -f deps.edn ]]; then
cache_dir=.cpcache
else
cache_dir="$user_cache_dir"
fi
`
这实际上使在写保护文件系统上运行 deps.edn 项目变得不可能。
当前可以通过重命名 deps.edn 并通过例如 "-Sdeps $(cat xdeps.edn)" 来覆盖,
使用 CLJ_CACHE 环境变量,这反过来可能造成其他链式问题,特别是在像 systemd 这样的对引号敏感的环境中。
建议:引入可选环境变量,用于项目缓存的存储位置,例如
`
确定是否使用用户缓存或项目缓存
if [[ -f deps.edn ]]; then
if [[ -n "$CLJ_PROJECT_CACHE" ]]; then
cache_dir="$CLJ_PROJECT_CACHE"
elif [[ -n "$XDG_PROJECT_CACHE" ]]; then
cache_dir="$XDG_PROJECT_CACHE"
else
cache_dir=.cpcache
fi
else
cache_dir="$user_cache_dir"
fi
`