我正在开发一个目前使用org.clojure/tools.cli
最新版本的clojure项目,我希望开始使用storm
。但是,只要我将[storm "0.9.0.1"]
添加到我的依赖项中,使用parse-opts
函数的命名空间就无法编译。我的窥探让我得出结论:storm
要求较旧版本的tools.cli
(0.2.x)以某种隐藏的方式不被leiningen看到/控制。
有趣的是
lein deps :tree
并未显示此依赖关系,也未显示有关此依赖关系的任何警告; [storm "0.9.1" :exclusions [org.clojure/tools.cli]]
似乎无法解决问题。查看storm github repo,tools.cli
规范似乎位于pom.xml
文件中。我已经确认了分支风暴,更新此依赖项并通过lein-git-deps
使用此分支修复了该问题。但是,这对此非常令人沮丧。
有解决方法吗?这里有一些错误吗? Leiningen并没有特别好地记录这个功能,至少就我能找到的那样。
答案 0 :(得分:0)
莱宁根没什么不对的。 Storm的运行时依赖性都在storm-dir/lib/
之下,其中包括tools.cli-0.2.4.jar
。
有一种解决方法,但我不确定它是否有效。
tools.cli
jar并将其放在storm-dir/lib/
。此解决方案适用于某些库,但不是全部。如果不起作用,任何只改变maven或leiningen依赖的尝试都不会起作用。