【问题标题】:What does :scope "provided" mean?:scope “提供”是什么意思?
【发布时间】:2017-01-15 07:24:41
【问题描述】:

我看到很多地方 Clojure 项目中的一些依赖项都标有:scope "provided" (example)。

什么意思?

【问题讨论】:

  • 您可以阅读有关 maven 范围的信息,因为它是同一回事。 stackoverflow.com/questions/6646959/… 据我所知,如果您在项目中使用此库,您还应该将这些依赖项与库本身一起添加到您的 project.clj 中(我仍然可能会弄错)
  • 您还可以使用其他一些作用域:maven.apache.org/guides/introduction/…
  • @leetwinski 谢谢,现在似乎很清楚了。顺便说一句,有什么理由使用:scope "test" 而不是:test 个人资料吗?
  • 这里的原因也是为了防止传递依赖到特定版本(例如clojure)。在那个庄园这里使用它,因为图书馆作者不想污染lib用户的项目。
  • 我已经阅读了类似@leetwinski 链接的问题的答案,但我仍然对决定使用什么范围作为我的依赖项感到不舒服,尤其是当我' m 使用Boot。如果有人针对这个专门针对 Clojure 的问题发布了一个很好的答案,并讨论了如何为不同类型的项目做些什么,我会给它一个赏金。

标签: clojure leiningen


【解决方案1】:

这本质上是一个 Maven 概念。 Provided 表示给定的依赖项已经与环境打包(或“提供”,如果你愿意的话)。 jar 是编译所必需的,但不会与应用程序一起打包。这些也不是传递依赖。

要了解有关传递依赖的更多信息,请参阅here

【讨论】:

    【解决方案2】:

    您可以阅读有关 maven 范围的信息,因为它是同一回事。 Difference between maven scope compile and provided for JAR packaging 。据我所知,如果您在项目中使用此库,您还应该将这些依赖项与库本身一起添加到您的 project.clj 中(我仍然可能会弄错)

    您还可以使用其他一些作用域:https://maven.apache.org/guides/introduction/introduction-to-dependency-mechanism.html#Dependency_Scope

    【讨论】:

      猜你喜欢
      • 2013-09-07
      • 1970-01-01
      • 2015-05-09
      • 2013-06-15
      • 1970-01-01
      • 1970-01-01
      • 2018-05-14
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多