【问题标题】:Can leiningen see/control dependencies of Java pom.xml dependencies?leiningen 可以查看/控制 Java pom.xml 依赖项的依赖项吗?
【发布时间】:2014-08-03 16:36:00
【问题描述】:

我正在开发一个 clojure 项目,该项目目前使用最新版本的 org.clojure/tools.cli,并且我希望在其中开始使用 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 没有特别详细地记录这个特性,至少就我所能找到的而言。

【问题讨论】:

    标签: java clojure dependencies leiningen apache-storm


    【解决方案1】:

    莱宁根没有错。 Storm的运行时依赖都在storm-dir/lib/下,其中包括tools.cli-0.2.4.jar

    有一种解决方法,但我不确定它是否会起作用。

    • 下载新版本的tools.clijar,放到storm-dir/lib/下。
    • 将旧版本移至其他位置。
    • 希望两个版本差别不大,开始拓扑吧。

    此解决方案适用于某些库,但不是全部。如果不起作用,任何仅更改 maven 或 leiningen 中的依赖项的尝试也将不起作用。

    【讨论】:

      猜你喜欢
      • 2016-07-19
      • 1970-01-01
      • 2012-07-07
      • 1970-01-01
      • 2021-01-01
      • 2011-08-31
      • 2015-01-16
      • 1970-01-01
      • 2020-07-17
      相关资源
      最近更新 更多