类型:增强
摘要:扩展 tools.gitlibs
对本地 Git URL 的支持
描述
当指定包含依赖项的 Git 仓库的本地文件 URL 时,在 使用绝对路径时遇到以下错误
`
java.lang.IllegalArgumentException: /path/to/my/repo 不是一个相对路径
at clojure.java.io$as_relative_path.invokeStatic(io.clj:414)
at clojure.java.io$file.invokeStatic(io.clj:426)
at clojure.java.io$file.invoke(io.clj:418)
at clojure.lang.ArraySeq.reduce(ArraySeq.java:111)
at clojure.core$reduce.invokeStatic(core.clj:6829)
at clojure.java.io$file.invokeStatic(io.clj:418)
at clojure.tools.gitlibs.impl$git_dir.invokeStatic(impl.clj:59)
at clojure.tools.gitlibs.impl$ensure_git_dir.invokeStatic(impl.clj:80)
at clojure.tools.gitlibs$procure.invokeStatic(gitlibs.clj:61)
at clojure.tools.deps.alpha.extensions.git$fn__1317.invokeStatic(git.clj:98)
at clojure.tools.deps.alpha.extensions.git$fn__1317.invoke(git.clj:96)
at clojure.lang.MultiFn.invoke(MultiFn.java:239)
at clojure.tools.deps.alpha$expand_deps.invokeStatic(alpha.clj:425)
at clojure.tools.deps.alpha$resolve_deps.invokeStatic(alpha.clj:495)
at clojure.tools.deps.alpha$calc_basis.invokeStatic(alpha.clj:738)
...
`
对相对 URL 的要求在某些环境下指定依赖项更加困难 - 我的具体激励用途案例是在 WSL 环境下,Clojure 进程在 Ubuntu/WSL 中运行,但源代码在 Windows 文件系统中。
Alex Miller 在 Clojurians Slack 中提到,当提到这个问题时,“这实际上是问题的一个子集 - 将 git URL 转换为缓存目录和库的代码既不处理原始路径也不处理相对路径。”