使用deps.edn的Clojure项目中,包名与版本信息存于何处?
在使用deps.edn的Clojure项目中管理包名称与版本的位置
在Clojure的deps.edn生态里,包名称、版本及相关依赖配置全部直接放在根目录的deps.edn文件中——这和Rust的Cargo.toml作用一致,是项目依赖与元数据管理的核心配置文件,只是格式采用EDN(Extensible Data Notation)而非TOML。
具体存储方式:
- 项目核心依赖放在
:deps键下,以包的符号名(比如org.clojure/clojure)作为键,对应值是包含版本信息的map,示例::deps { org.clojure/clojure {:mvn/version "1.11.1"} com.github.seancorfield/next.jdbc {:mvn/version "1.3.847"} } - 开发、测试这类特定环境的依赖,可放在
:aliases对应的:extra-deps中实现环境隔离::aliases { :dev {:extra-deps {org.clojure/tools.namespace {:mvn/version "1.4.4"}}} :test {:extra-deps {clojure.test {:mvn/version "0.9.0"}}} } - 若要定义项目自身的元数据(比如项目名称、版本号),可在
deps.edn中添加自定义键(如:project);如果需要发布到Maven仓库,需配套生成pom.xml,但日常开发与依赖管理完全依赖deps.edn即可。
和Rust的Cargo.toml不同的是,deps.edn没有单独的依赖元数据区块,而是将每个依赖的标识与版本直接绑定,更贴合Clojure数据优先的风格。
内容的提问来源于stack exchange,提问作者justkash
相关产品推荐
相关产品推荐

