我有一个离线 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 将尝试解决依赖(例如 clojurescript),这我不希望(事实上,由于网络设置,它们将失败)。
是否有规定的方式只将 uberjar 作为哑本地依赖项来处理,而不激活更高阶的依赖项解析机制?我想要利用 deps.edn 中的选项(例如设置源路径等),只是预先在 uber.jar 中加载大量库(假设在限制环境中所有所需的依赖项)。
另一种选项(我想)是将它安装到本地的 .m2 并将其视为 Maven 坐标,这应该(希望)防止 clj 尝试在线嗅探依赖项。
我希望能使本地 jar 方法工作。