我在做一个clojure项目,目前使用的是最新版本的 org.clojure/tools.cli
我想开始使用 storm
. 不过,只要我加上 [storm "0.9.0.1"]
对于我的依赖项,使用 parse-opts
函数无法编译。我四处窥探,得出结论 storm
需要旧版本的 tools.cli
(0.2.x)以莱宁根不可见/不可控的某种隐藏方式。
有趣的是
使用 lein deps :tree
不显示此依赖关系,也不显示任何有关此依赖关系的警告;
添加 [storm "0.9.1" :exclusions [org.clojure/tools.cli]]
似乎无法解决问题。
看看github回购的风暴,似乎 tools.cli
规格在a中 pom.xml
文件。我已经确认了forking风暴,更新了这个依赖,并通过 lein-git-deps
解决了问题。然而,不得不这样做是相当令人沮丧的。
有办法吗?这里有虫子吗?leiningen并没有很好地记录这个特性,至少就我所能找到的。
1条答案
按热度按时间nmpmafwu1#
莱宁根没什么不对的。storm的运行时依赖项都在
storm-dir/lib/
,其中包括tools.cli-0.2.4.jar
.有一个解决办法,但我不确定它是否能奏效。
下载新版本的
tools.cli
把jar放在下面storm-dir/lib/
.将旧版本移到其他位置。
希望两个版本之间没有太大区别,开始拓扑。
此解决方案适用于某些lib,但不是所有lib。如果不起作用,任何只改变maven或leiningen中依赖关系的尝试也不会起作用。