评论由:timgilbert 发布
因此,{{0001-Adding-cp-jar-argument.patch}} 会在 tools.deps 的 {{make-classpath}} 部分,添加了一个命令行标志({{--cp-jar}})。当此文件存在时,tools.deps 会根据上述方式生成路径 jar 文件,将类路径转换为以空格分隔的 {{file://}} URL 列表,将其放入 jar 清单中,并创建一个只包含清单的 jar 文件。这段代码比我预期的要简单。
为了正确实现这一功能,还需要一段代码——在 {{brew Install}} 或Windows对应的脚本在构建路径时,需要传递此标志给 make-classpath 脚本,然后调用 {{java -cp .cpcache/1864468523.jar clojure.main}} 实际启动 clojure。
我已经在 Windows PowerShell 和 WSL(即 Linux)中测试了此代码,通过从 repl 中调用 {{(write-pathing-jar "path.jar" (slurp cached-cp-filename))}} 来实现。之后,我能够通过 {{java -cp path.jar clojure.main}} 启动一个 repl,并在其中调用 {{(require 'clojure.tools.deps.alpha.script.make-classpath)}} 来验证我能否调用本地命名空间。