请在2024 Clojure现状调查中分享您的想法!

欢迎!有关此工作方式的更多信息,请参阅关于页面。

0
Clojure
重新标记

在某些情况下,例如使用`nil`在`:classpath-overrides`中时,classpath最终会出现空路径,例如`src::/home/russ/russmatney/ralphie/src:::/home/russ/.m2/repository/cheshire/cheshire/5.10.0/cheshire-5.10.0.jar`。
这会导致本地目录被添加到classpath中。演示

echo '(ns foo) (prn :foo)' > foo.clj
clj -Scp ":$(clojure -Spath)" -M -e "(require 'foo)"
:foo

重现带有空路径的classpath的方法

deps.edn

{:aliases
 {:remove-clojure
  {:classpath-overrides
   {org.clojure/clojure          ""
    org.clojure/spec.alpha       ""
    org.clojure/core.specs.alpha ""}}}}

Shell

$ clojure -Spath -A:remove-clojure
src:::

Alex在Clojurians slack上将其归类为bug。

也许应当修复由tools.deps.alpha返回的空路径。
classpath中的空路径行为可能是JVM的行为。

1 答案

0
...