类型:增强
摘要:扩展 tools.gitlibs
对本地 Git URL 的支持
描述
在指定包含依赖项的 Git 仓库的本地文件基础 URL 时,当使用绝对 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 urls 转换为缓存目录和库的代码既没有处理原始路径也没有处理相对路径。”