CodeArtifact 搭配 deps.edn 使用 - CodeArtifact

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

CodeArtifact 搭配 deps.edn 使用

您可以使用 deps.edn 搭配 clj 來管理 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 xmlclj -Spom

  3. deps.edn組態檔案中,新增符合 Maven 中伺服器 ID 的儲存庫settings.xml

    :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參考原理 中的修改預設儲存庫