我有一个离线 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 方法能够正常工作。