什么:范围“test”在build.boot依赖中意味着什么?

时间:2017-11-06 10:38:08

标签: clojure

很多例子都有像

这样的依赖关系
[org.clojure/tools.nrepl "0.2.12" :scope "test"]

我认为这意味着不要在prod构建中包含这种依赖,比如lein的dev配置文件,但我找不到任何关于此的文档。还有哪些其他范围?它们在启动时是否具有硬编码含义,或者是用户可以定义的内容?

1 个答案:

答案 0 :(得分:3)

这直接转换为Maven scopes

test

  

此范围表示正常情况下不需要依赖关系   使用该应用程序,仅适用于测试编译   和执行阶段。这个范围不具有传递性。

在引导时,在构建jar工件时会排除这些依赖项。当您对项目具有依赖性时,它们也不会被视为传递依赖项。这也用于在引导项目中指定Clojure版本:

  

库(包括引导任务)不应直接依赖于Clojure版本。相反,他们应该使用:范围“提供”限定符   具有Clojure依赖性。此限定符使得依赖性   非传递。然后依赖关系作为文档   需要Clojure版本。

Source