评论由:timgilbert
所以,{{0001-Adding-cp-jar-argument.patch}} 添加了一个命令行标志({-cp-jar})到 tools.deps 中的 {{make-classpath}} 部分。当此文件存在时,tools.deps 会通过将类路径转换为空格分隔的 {{file://}} URL 列表,将其放入 jar 清单中,并创建一个只包含清单的 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 以启动 REPL,然后在该 REPL 内部调用 {{(require 'clojure.tools.deps.alpha.script.make-classpath)}} 以验证我是否可以引入本地命名空间。