Clojure 项目依赖项和:require之间的命名差异
当我查看clojure.data.json源代码时,我可以看到一个名称空间,例如:Clojure 项目依赖项和:require之间的命名差异,clojure,dependencies,packages,Clojure,Dependencies,Packages,当我查看clojure.data.json源代码时,我可以看到一个名称空间,例如: (ns clojure.data.json...) (ns so.example (:require [clojure.data.json :as json]) ... 因此,当我想:在我的.clj Clojure文件中要求这样做时,我只需执行如下操作: (ns clojure.data.json...) (ns so.example (:require [clojure.data.
(ns clojure.data.json...)
(ns so.example
(:require [clojure.data.json :as json])
...
因此,当我想:在我的.clj Clojure文件中要求这样做时,我只需执行如下操作:
(ns clojure.data.json...)
(ns so.example
(:require [clojure.data.json :as json])
...
但是,在my.clj中的依赖项中,我有:
因此clojure.data.json“变成”org.clojure/data.json
现在,对于我的依赖项中的server.socket:
[server-socket "1.0.0"]
所以这次没有“.org”添加,没有斜线,但圆点变成了破折号
Clojure源文件中的:require和project.clj中的:dependencies之间有什么关系?有什么“逻辑”吗
如何才能找到放入依赖项的正确行?项目中的依赖向量。clj是maven工件坐标,通过找到合适的jar来解析依赖项。Leiningen将尝试找到合适的JAR并将其添加到类路径中,以便在运行时从其归档内容中加载命名空间定义和其他资源。代码中的
require
语句指定要在类路径中查找的资源。例如,如果需要clojure.data.json
,clojure将在类路径中的某个位置查找路径为clojure/data/json.clj
的资源,并尝试从该资源加载命名空间clojure.data.json
的定义。project.clj中的依赖向量是maven工件坐标,用于通过找到适当的jar来解析依赖关系。Leiningen将尝试找到合适的JAR并将其添加到类路径中,以便在运行时从其归档内容中加载命名空间定义和其他资源。代码中的require
语句指定要在类路径中查找的资源。例如,如果您需要clojure.data.json
,clojure将在类路径中的某处查找路径为clojure/data/json.clj
的资源,并尝试从该资源加载命名空间clojure.data.json
的定义。没有关系。命名空间是源代码文件中定义的内容。依赖项基于项目名称,由作者在发布时决定。您几乎总能在project github站点或Clojars上找到正确的依赖关系信息,在某些情况下,也可以在maven上找到这些信息。没有任何关系。命名空间是源代码文件中定义的内容。依赖项基于项目名称,由作者在发布时决定。在项目github站点或Clojars上,或者在某些情况下在maven上,您几乎总能找到正确的依赖信息