通过 deps.edn 来使用 CodeArtifact
您可以使用包含 clj 命令的 deps.edn 来管理 Clojure 项目的依赖项。本节说明如何配置 deps.edn 来使用 CodeArtifact 存储库。
提取依赖项
要将 Clojure 配置为从 CodeArtifact 存储库提取依赖项,必须编辑 Maven 配置文件 settings.xml。
-
在
settings.xml中,添加一个引用CODEARTIFACT_AUTH_TOKEN环境变量的<servers>部分,以便 Clojure 可在 HTTP 请求中传递令牌。注意
Clojure 预计 settings.xml 文件位于
~/.m2/settings.xml。如果该文件在其他地方,则在此位置创建该文件。<settings> ... <servers> <server> <id>codeartifact</id> <username>aws</username> <password>${env.CODEARTIFACT_AUTH_TOKEN}</password> </server> </servers> ... </settings> 如果您的项目还没有 POM xml 文件,请使用
clj -Spom生成该文件。在您的
deps.edn配置文件中,添加与 Mavensettings.xml中的服务器 ID 相匹配的存储库。:mvn/repos { "clojars" nil "central" nil "codeartifact" {:url "https://my_domain-111122223333.d.codeartifact.us-west-2.amazonaws.com/maven/my_repo/"} }注意
-
tools.deps保证首先检查central和clojars存储库中是否有 Maven 库。之后,系统会检查deps.edn中列出的其他存储库。 -
为了防止直接从 Clojars 和 Maven Central 下载,
central和clojars需要设置为nil。
确保环境变量中有 CodeArtifact 身份验证令牌(请参见使用环境变量传递身份验证令牌)。在发生这些更改之后构建程序包时,
deps.edn将从 CodeArtifact 中提取依赖项。注意
要使用双堆栈端点,请使用
codeartifact.端点。region.on.aws-
发布构件
-
更新 Maven 设置和
deps.edn,将 CodeArtifact 添加为 Maven 认可的服务器(请参见提取依赖项)。您可以使用诸如 deps-deploy之类的工具将构件上传到 CodeArtifact。 在
build.clj中,添加一个deploy任务,将所需的构件上传到先前设置的codeartifact存储库。(ns build (:require [deps-deploy.deps-deploy :as dd])) (defn deploy [_] (dd/deploy {:installer :remote :artifact "PATH_TO_JAR_FILE.jar" :pom-file "pom.xml" ;; pom containing artifact coordinates :repository "codeartifact"}))通过运行以下命令来发布构件:
clj -T:build deploy
有关修改默认存储库的更多信息,请参阅《Clojure Deps 和 CLI 参考依据》中的修改默认存储库