很多例子都有像
这样的依赖关系[org.clojure/tools.nrepl "0.2.12" :scope "test"]
我认为这意味着不要在prod构建中包含这种依赖,比如lein的dev配置文件,但我找不到任何关于此的文档。还有哪些其他范围?它们在启动时是否具有硬编码含义,或者是用户可以定义的内容?
答案 0 :(得分:3)
这直接转换为Maven scopes。
test
:
此范围表示正常情况下不需要依赖关系 使用该应用程序,仅适用于测试编译 和执行阶段。这个范围不具有传递性。
在引导时,在构建jar工件时会排除这些依赖项。当您对项目具有依赖性时,它们也不会被视为传递依赖项。这也用于在引导项目中指定Clojure版本:
库(包括引导任务)不应直接依赖于Clojure版本。相反,他们应该使用:范围“提供”限定符 具有Clojure依赖性。此限定符使得依赖性 非传递。然后依赖关系作为文档 需要Clojure版本。