我有一个离线Clojure项目的用例。我想包含一个捆绑的依赖项(在这种情况下是一个我修改过的Oz版本,以便离线使用,不会检索js依赖项)。结果是包含Oz所需所有内容的uberjar。我想用它通过与clj CLI工具一起进行操作。我按照指南的说明执行操作,并将最小化的deps.edn与uberjar共存
{:deps {metasoarous/oz {:local/root "./oz.jar"}}}
在我看来,这应该(或多或少)等同于调用
java -cp oz.jar clojure.main
没有对deps.edn进行任何额外更改,启动clj将尝试解决依赖项(例如,对于clojurescript),而这正是我不想要的(事实上,由于网络设置,它们将会失败)。
是否有规定的方法来将uberjar视为哑本地依赖项,而不触发高级依赖项解析机制?我希望利用deps.edn中的选项(例如,设置源路径等),只需预先在uber.jar中加载一大堆库(可能是我在一个有限环境中需要的所有依赖项)。
另一个选项(我想)是将它安装到本地的.m2中,将其视为maven坐标,这应该(希望)阻止clj尝试在线嗅探依赖项。
我希望本地jar方法能够被实现。