

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

# CodeArtifact で deps.edn を使用する
<a name="maven-deps"></a>

`deps.edn` と `clj` を使用して、Clojure プロジェクトの依存関係を管理します。このセクションでは、CodeArtifact リポジトリを使用して `deps.edn` を設定する方法を示します。

**Topics**
+ [依存関係の取得](#fetching-dependencies-deps)
+ [アーティファクトの公開](#publishing-artifacts-deps)

## 依存関係の取得
<a name="fetching-dependencies-deps"></a>

`Clojure` を設定して CodeArtifact リポジトリから依存関係を取得するには、Maven 設定ファイル `settings.xml` を編集する必要があります。

1. `CODEARTIFACT_AUTH_TOKEN` 環境変数を参照して `<servers>` セクションを `settings.xml` に追加し、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>
   ```

1. ファイルを作成していない場合は、`clj -Spom` を使用してプロジェクト用の POM xml を生成します。

1. `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/"}
   }
   ```
**注記**  
`clojars` によって、Maven ライブラリーの `tools.deps` と `central` リポジトリが最初にチェックされることが保証されます。その後、`deps.edn` に記載されている他のリポジトリがチェックされます。
Clojars と Maven Central から直接ダウンロードされないようにするには、`central` と `clojars` を `nil` に設定する必要があります。

   CodeArtifact Auth トークンが環境変数に含まれていることを確認してください (「[環境変数を使用して認証トークンを渡す](tokens-authentication.md#env-var)」を参照)。これらの変更後にパッケージを構築する際、`deps.edn` の依存関係が CodeArtifact から取得されます。
**注記**  
デュアルスタックエンドポイントを使用するには、`codeartifact.{{region}}.on.aws` エンドポイントを使用してください。

## アーティファクトの公開
<a name="publishing-artifacts-deps"></a>

1. Maven 設定 と `deps.edn` を更新して、CodeArtifact を Maven で認識されるサーバーとして含めるようにします (「[依存関係の取得](#fetching-dependencies-deps)」を参照)。[deps-deploy](https://github.com/slipset/deps-deploy) などのツールを使用して、アーティファクトを CodeArtifact にアップロードできます。

1. `build.clj` に、以前に設定した `codeartifact` リポジトリに必要なアーティファクトをアップロードする `deploy` タスクを追加します。

   ```
   (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"}))
   ```

1. `clj -T:build deploy` コマンドを実行してアーティファクトを公開します。

デフォルトリポジトリの変更に関する詳細は、「*Clojure Deps and CLI Reference Rationale*」の「[Modifying the default repositories](https://clojure.org/reference/deps_and_cli#_modifying_the_default_repositories)」を参照してください。