我对一个离线Clojure项目有一个用例。我想包括一个捆绑的依赖项(在这种情况下,是一个经过修改以离线工作的Oz版本,这样它就不会获取js依赖项)。结果是包含Oz所需所有内容的uberjar。我想使用clj CLI工具对其进行操作。我按照指南的操作,并在uberjar旁边有一个最小的deps.edn文件
{:deps {metasoarous/oz {:local/root "./oz.jar"}}}
在我的想法中,这应该(更多或更少地)等同于调用
java -cp oz.jar clojure.main
没有任何额外的deps.edn更改,启动clj将尝试解析deps(例如,对于clojurescript),而这正是我不想要的(事实上,由于网络设置,它们将失败)。
是否有建议的方法只将uberjar视为哑本地依赖项,而不使用更高层的依赖项解析机制?我希望利用deps.edn中的选项(例如设置源路径等),只是预先在uber.jar中加载一些库(假设在一个有限的环境中需要的所有依赖项)。
另一种可能是将它安装到本地的.m2中,并作为maven坐标进行处理,这应该(希望)可以防止clj尝试在线嗅探依赖项。
我希望本地jar方法能够有效。