CodeArtifact 与 deps.edn 一起使用 - CodeArtifact

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

CodeArtifact 与 deps.edn 一起使用

您可以使用包含 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. 如果您还没有 xml,请使用为您的项目生成 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 Auth 令牌(请参阅使用环境变量传递身份验证令牌)。在这些更改之后构建软件包时,deps.edn将从 CodeArtifact中获取依赖关系。

    注意

    要使用双堆栈端点,请使用该codeartifact.region.on.aws端点。

发布构件

  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参考原理中的修改默认存储库