

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

# 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>

CodeArtifact 리포지토리에서 종속성을 가져오도록 `Clojure`를 구성하려면 Maven 구성 파일 `settings.xml`을 편집해야 합니다.

1. Clojure가 HTTP 요청에서 토큰을 전달하도록 `settings.xml`에서 `CODEARTIFACT_AUTH_TOKEN` 환경 변수에 대한 참조가 있는 `<servers>` 섹션을 추가합니다.
**참고**  
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/"}
   }
   ```
**참고**  
`tools.deps`를 실행하면 `central` 및 `clojars` 리포지토리에서 Maven 라이브러리를 먼저 확인하게 됩니다. 그런 다음, `deps.edn`에 나열된 다른 리포지토리도 검사됩니다.
Clojars와 Maven Central에서 직접 다운로드하는 것을 방지하려면 `central`과 `clojars`를 `nil`로 설정해야 합니다.

   환경 변수에 CodeArtifact 인증 토큰이 있는지 확인합니다([환경 변수를 사용하여 인증 토큰 전달](tokens-authentication.md#env-var) 참조). 이러한 변경 후 패키지를 빌드하면 CodeArtifact에서 `deps.edn`의 종속성을 가져옵니다.
**참고**  
듀얼 스택 엔드포인트를 사용하려면 `codeartifact.region.on.aws` 엔드포인트를 사용합니다.

## 아티팩트 게시
<a name="publishing-artifacts-deps"></a>

1. CodeArtifact를 Maven이 인식하는 서버로 포함하도록 Maven 설정과 `deps.edn`을 업데이트합니다([종속성 가져오기](#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 및 CLI 참조 근거에서 [기본 리포지토리 수정](https://clojure.org/reference/deps_and_cli#_modifying_the_default_repositories)을 참조합니다.