我对一个离线 Clojure 项目有一个用例。我想包含一个捆绑的依赖关系(在这种情况下,是经过修改以离线工作而不会获取 js 依赖项的 Oz 版本)。结果是包含 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 方法能够工作。