评论者:timgilbert
好的,所以 {{0001-Adding-cp-jar-argument.patch}} 在 tools.deps 的 {{make-classpath}} 中添加了一个命令行标志 {{–cp-jar}}。当此文件存在时,tools.deps 会对类路径进行转换,生成如下所述的路径 jar 文件:将类路径转换为一个由空格分隔的文件:// 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}} 启动 Clojure,并在其中通过 {{(require 'clojure.tools.deps.alpha.script.make-classpath)}} 验证是否可以引入本地命名空间。