你好,
使用 clj -M:foo 与 :extra-paths 似乎存在一个 bug,在 :aliases 中 classpath 不包括额外的路径
deps.edn
{:aliases
{:foo
{:extra-paths ["dev"]
:main-opts ["-m" "foo"]}}}
dev/foo.clj
(ns foo)
(defn -main
[& args]
(println "hello world"))
当运行时
clj -M:foo
我们得到
执行错误(FileNotFoundException)在 clojure.main/main
(main.java:40)。无法在类路径中找到 foo__init.class,foo.clj 或 foo.cljc
。
完整的报告在:/tmp/clojure-8075946726191297006.edn
而
clj -A:foo -m foo
给出
hello world
这个差异也可以通过 -Spath 查看
clj -Spath -M:foo
src:/home/mark/.m2/repository/org/clojure/clojure/1.10.1/clojure-1.10.1.jar:/home/mark/.m2/repository/org/clojure/spec.alpha/0.2.176/spec.alpha-0.2.176.jar:/home/mark/.m2/repository/org/clojure/core.specs.alpha/0.2.44/core.specs.alpha-0.2.44.jar
clj -Spath -A:foo
dev:src:/home/mark/.m2/repository/org/clojure/clojure/1.10.1/clojure-1.10.1.jar:/home/mark/.m2/repository/org/clojure/spec.alpha/0.2.176/spec.alpha-0.2.176.jar:/home/mark/.m2/repository/org/clojure/core.specs.alpha/0.2.44/core.specs.alpha-0.2.44.jar