通过 deps.edn 来使用 CodeArtifact - CodeArtifact

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

通过 deps.edn 来使用 CodeArtifact

您可以使用包含 clj 命令的 deps.edn 来管理 Clojure 项目的依赖项。本节说明如何配置 deps.edn 来使用 CodeArtifact 存储库。

提取依赖项

要将 Clojure 配置为从 CodeArtifact 存储库提取依赖项,必须编辑 Maven 配置文件 settings.xml

  1. 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>
  2. 如果您的项目还没有 POM xml 文件,请使用 clj -Spom 生成该文件。

  3. 在您的 deps.edn 配置文件中,添加与 Maven settings.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 保证首先检查 centralclojars 存储库中是否有 Maven 库。之后,系统会检查 deps.edn 中列出的其他存储库。

    • 为了防止直接从 Clojars 和 Maven Central 下载,centralclojars 需要设置为 nil

    确保环境变量中有 CodeArtifact 身份验证令牌(请参见使用环境变量传递身份验证令牌)。在发生这些更改之后构建程序包时,deps.edn 将从 CodeArtifact 中提取依赖项。

发布构件

  1. 更新 Maven 设置和 deps.edn,将 CodeArtifact 添加为 Maven 认可的服务器(请参见提取依赖项)。您可以使用诸如 deps-deploy 之类的工具将构件上传到 CodeArtifact。

  2. 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"}))
  3. 通过运行以下命令来发布构件:clj -T:build deploy

有关修改默认存储库的更多信息,请参阅《Clojure Deps 和 CLI 参考依据》中的修改默认存储库