我对一个离线clojure项目有一些使用案例。我想包含一个捆绑依赖项(在这种情况下是一个已经修改以离线工作的Oz版本,因此它不会检索JavaScript依赖项)。结果是包含了Oz所需所有内容的uberjar。我想从clj CLI工具中对其进行操作。我遵循了指南中的说明,并将在uberjar旁边有一个最小化的deps.edn
{: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方法能工作。