评论者:timgilbert
好的,所以{{0001-Adding-cp-jar-argument.patch}}在这个工具.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}}执行Clojure以启动REPL,然后在此REPL内部调用{{(require 'clojure.tools.deps.alpha.script.make-classpath)}}来验证我是否可以引入本地名称空间。