

Amazon CodeCatalyst는 더 이상 신규 고객에게 공개되지 않습니다. 기존 고객은 정상적으로 서비스를 계속 이용할 수 있습니다. 자세한 내용은 [CodeCatalyst에서 마이그레이션하는 방법](migration.md) 단원을 참조하십시오.

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

# mvn 구성 및 사용
<a name="packages-maven-mvn"></a>

`mvn` 명령을 사용하여 Maven 빌드를 실행합니다. 패키지 리포지토리를 사용하고 인증을 위한 개인 액세스 토큰(PAT)을 제공하도록 `mvn`을 구성해야 합니다.

**Contents**
+ [CodeCatalyst에서 종속성 가져오기](#mvn-fetch-dependencies)
+ [CodeCatalyst를 통해 외부 패키지 리포지토리에서 패키지 가져오기](#mvn-install-public)
+ [CodeCatalyst에 패키지 게시](#mvn-publish-packages)
+ [타사 패키지 게시](#publishing-third-party-packages)

## CodeCatalyst에서 종속성 가져오기
<a name="mvn-fetch-dependencies"></a>

CodeCatalyst 리포지토리에서 종속성을 가져오도록 `mvn`을 구성하려면 Maven 구성 파일, `settings.xml` 및 프로젝트 객체 모델(POM) 파일을 편집해야 합니다. POM 파일에는 종속성, 빌드 디렉터리, 소스 디렉터리, 테스트 소스 디렉터리, 플러그인 및 목표와 같이 Maven이 프로젝트를 빌드하기 위한 프로젝트 및 구성 정보에 대한 정보가 포함되어 있습니다.

**`mvn`을 사용하여 CodeCatalyst 패키지 리포지토리에서 종속성을 가져오는 방법**

1. [https://codecatalyst.aws/](https://codecatalyst.aws/)에서 CodeCatalyst 콘솔을 엽니다.

1. 프로젝트의 개요 페이지에서 **패키지**를 선택합니다.

1. 패키지 리포지토리 목록에서 패키지 리포지토리를 선택합니다.

1. **리포지토리에 연결**을 선택합니다.

1. **리포지토리에 연결** 대화 상자의 패키지 관리자 클라이언트 목록에서 **mvn**을 선택합니다.

1. `mvn`을 CodeCatalyst 로 인증하려면 개인 액세스 토큰(PAT)이 필요합니다. 이미 토큰이 있으면 그 토큰을 사용하면 됩니다. 없는 경우에는 여기에서 만들 수 있습니다.

   1. **토큰 생성**을 선택합니다.

   1. PAT를 복사하려면 **복사**를 선택합니다.
**주의**  
대화 상자를 닫으면 PAT를 다시 보거나 복사할 수 없습니다.

1. 리포지토리가 포함된 프로파일을 `settings.xml` 파일에 추가합니다. 다음 값을 교체합니다.
**참고**  
콘솔 지침에서 복사하는 경우 다음 값을 업데이트해야 하며 변경해서는 안 됩니다.
   + *space\$1name*을 CodeCatalyst 스페이스 이름으로 바꿉니다.
   + *proj\$1name*을 CodeCatalyst 프로젝트 이름으로 바꿉니다.
   + *my\$1repo*를 CodeCatalyst 패키지 리포지토리 이름으로 바꿉니다.

   ```
   <profiles>
     <profile>
       <id>repo_name</id>
       <activation>
           <activeByDefault>true</activeByDefault>
       </activation>
       <repositories>
           <repository>
             <id>repo_name</id>
             <url>https://packages.region.codecatalyst.aws/maven/space_name/proj_name/repo_name/</url>
           </repository>
       </repositories>
     </profile>
   </profiles>
   ```

1. `settings.xml` 파일의 서버 목록에 서버를 추가합니다. 다음 값을 교체합니다.
**참고**  
콘솔 지침에서 복사하는 경우 다음 값을 업데이트해야 하며 변경해서는 안 됩니다.
   + *my\$1repo*를 CodeCatalyst 패키지 리포지토리 이름으로 바꿉니다.
   + *username*을 CodeCatalyst 사용자 이름으로 바꿉니다.
   + *PAT*를 CodeCatalyst PAT로 바꿉니다.

   ```
   <servers>
     <server>
       <id>repo_name</id>
       <username>username</username>
       <password>PAT</password>
     </server>
   </servers>
   ```

1. (선택 사항) 모든 연결을 캡처하여 게이트웨이 리포지토리 대신 리포지토리로 라우팅하는 미러를 `settings.xml` 파일에 설정합니다.
**참고**  
콘솔 지침에서 복사하는 경우 다음 값을 업데이트해야 하며 변경해서는 안 됩니다.
   + *space\$1name*을 CodeCatalyst 스페이스 이름으로 바꿉니다.
   + *proj\$1name*을 CodeCatalyst 프로젝트 이름으로 바꿉니다.
   + *my\$1repo*를 CodeCatalyst 패키지 리포지토리 이름으로 바꿉니다.

   ```
   <mirrors>
     <mirror>
       <id>repo_name</id>
       <name>repo_name</name>
       <url>https://packages.region.codecatalyst.aws/maven/space_name/proj_name/repo_name/</url>
       <mirrorOf>*</mirrorOf>
     </mirror>
   </mirrors>
   ```

**중요**  
`<id>` 요소에서 어떤 값이든 사용할 수 있지만 그 값은 `<server>` 및 `<repository>` 요소에서 모두 동일해야 합니다. 이렇게 하면 지정된 자격 증명을 CodeCatalyst에 대한 요청에 포함할 수 있습니다.

이러한 구성을 변경한 후 프로젝트를 빌드할 수 있습니다.

```
mvn compile
```

## CodeCatalyst를 통해 외부 패키지 리포지토리에서 패키지 가져오기
<a name="mvn-install-public"></a>

게이트웨이 리포지토리를 나타내는 게이트웨이에 대한 업스트림 연결로 구성하여 CodeCatalyst 리포지토리를 통해 퍼블릭 리포지토리에서 Maven 패키지를 설치할 수 있습니다. 게이트웨이 리포지토리에서 설치된 패키지는 수집되어 CodeCatalyst 리포지토리에 저장됩니다.

현재 CodeCatalyst는 다음과 같은 퍼블릭 Maven 패키지 리포지토리를 지원합니다.
+ maven-central-gateway
+ google-android-gateway
+ gradle-plugins-gateway
+ commonsware-gateway

**퍼블릭 Maven 패키지 리포지토리에서 패키지를 설치하려면**

1. 아직 `mvn`을 구성하지 않았다면 [CodeCatalyst에서 종속성 가져오기](#mvn-fetch-dependencies)의 단계에 따라 CodeCatalyst 패키지 리포지토리로 구성합니다.

1. 리포지토리가 설치하려는 게이트웨이 리포지토리를 업스트림 연결로 추가했는지 확인합니다. 추가되는 업스트림 소스를 확인하거나 게이트웨이 리포지토리를 업스트림 소스로 추가하려면 [업스트림 리포지토리 추가](packages-upstream-repositories-add.md)의 지침을 따르세요.

업스트림 리포지토리에서 패키지를 요청하는 방법에 대한 자세한 내용은 [업스트림 리포지토리가 포함된 패키지 버전 요청](packages-upstream-repositories-request.md) 섹션을 참조하세요.

## CodeCatalyst에 패키지 게시
<a name="mvn-publish-packages"></a>

`mvn`과 함께 Maven 패키지를 CodeCatalyst 리포지토리에 게시하려면 `~/.m2/settings.xml` 및 프로젝트 POM도 편집해야 합니다.

**`mvn`을 사용하여 CodeCatalyst 패키지 리포지토리에 패키지를 게시하려면**

1. [https://codecatalyst.aws/](https://codecatalyst.aws/)에서 CodeCatalyst 콘솔을 엽니다.

1. 프로젝트의 개요 페이지에서 **패키지**를 선택합니다.

1. 패키지 리포지토리 목록에서 패키지 리포지토리를 선택합니다.

1. **리포지토리에 연결**을 선택합니다.

1. **리포지토리에 연결** 대화 상자의 패키지 관리자 클라이언트 목록에서 **mvn**을 선택합니다.

1. `mvn`을 CodeCatalyst 로 인증하려면 개인 액세스 토큰(PAT)이 필요합니다. 이미 토큰이 있으면 그 토큰을 사용하면 됩니다. 없는 경우에는 여기에서 만들 수 있습니다.

   1. **토큰 생성**을 선택합니다.

   1. PAT를 복사하려면 **복사**를 선택합니다.
**주의**  
대화 상자를 닫으면 PAT를 다시 보거나 복사할 수 없습니다.

1. PAT를 사용하여 로컬 시스템에서 환경 변수를 구성합니다. `setting.xml` 파일에서 이 환경 변수를 사용합니다.

   ```
   export CODECATALYST_ARTIFACTS_TOKEN=your_PAT
   ```

1. Maven이 HTTP 요청에서 토큰을 전달하도록 `<servers>` 섹션을 `CodeCatalyst_ARTIFACTS_TOKEN` 환경 변수에 대한 참조가 있는 `settings.xml`에 추가합니다.

   ```
   <settings>
   ...
       <servers>
           <server>
               <id>repo-name</id>
               <username>username</username>
               <password>${env.CodeCatalyst_ARTIFACTS_TOKEN}</password>
           </server>
       </servers>
   ...
   </settings>
   ```

1. 프로젝트의 `pom.xml`에 `<distributionManagement>` 섹션을 추가합니다.

   ```
   <project>
   ...
        <distributionManagement>
            <repository>
                <id>repo_name</id>
                <name>repo_name</name>
                <url>https://packages.region.codecatalyst.aws/maven/space_name/proj_name/repo_name/</url>
            </repository>
        </distributionManagement>
   ...
   </project>
   ```

이러한 구성을 변경한 후 프로젝트를 빌드하여 지정된 리포지토리에 게시할 수 있습니다.

```
mvn deploy
```

CodeCatalyst 콘솔에서 패키지 리포지토리로 이동하여 패키지가 성공적으로 게시되었는지 확인할 수 있습니다.

## 타사 패키지 게시
<a name="publishing-third-party-packages"></a>

`mvn deploy:deploy-file`을 사용하여 타사 Maven 패키지를 CodeCatalyst 리포지토리에 게시할 수 있습니다. 이는 JAR 파일만 가지고 있고 패키지 소스 코드나 POM 파일에는 액세스할 수 없는 사용자가 패키지를 게시하려고 할 때 도움이 될 수 있습니다.

이 `mvn deploy:deploy-file` 명령을 실행하면 명령줄에 전달된 정보를 기반으로 POM 파일이 생성됩니다.

먼저 PAT가 없는 경우 PAT를 생성합니다.

**개인용 액세스 토큰(PAT)을 만들려면**

1. 상단 메뉴 바에서 프로파일 배지를 선택한 다음 **내 설정**을 선택합니다.
**작은 정보**  
프로젝트 또는 스페이스의 멤버 페이지로 이동하고 멤버 목록에서 이름을 선택하여 자신의 사용자 프로파일을 찾을 수도 있습니다.

1. **PAT 이름**에 PAT를 설명하는 이름을 입력합니다.

1. **만료 날짜**에 기본 날짜를 유지하거나 달력 아이콘을 선택하여 사용자 지정 날짜를 선택합니다. 만료 날짜는 기본적으로 현재 날짜로부터 1년 후입니다.

1. **생성**을 선택합니다.

   소스 리포지토리의 **복제 리포지토리**를 선택할 때도 이 토큰을 생성할 수 있습니다.

1. PAT 보안 암호를 안전한 위치에 저장합니다.
**중요**  
PAT 보안 암호는 한 번만 표시됩니다. 창을 닫은 후에는 검색할 수 없습니다.

**타사 Maven 패키지를 게시하려면**

1. 다음 콘텐츠가 포함된 `~/.m2/settings.xml` 파일을 생성합니다.

   ```
   <settings>
       <servers>
           <server>
               <id>repo_name</id>
               <username>username</username>
               <password>PAT}</password>
           </server>
       </servers>
   </settings>
   ```

1. `mvn deploy:deploy-file` 명령을 실행합니다.

   ```
   mvn deploy:deploy-file -DgroupId=commons-cli          \
   -DartifactId=commons-cli       \
   -Dversion=1.4                  \
   -Dfile=./commons-cli-1.4.jar   \
   -Dpackaging=jar                \
   -DrepositoryId=repo-name      \
   -Durl=https://packages.region.codecatalyst.aws/maven/space-name/proj-name/repo-name/
   ```
**참고**  
앞의 예에서는 `commons-cli 1.4`를 게시합니다. groupId, artifactID, 버전 및 파일 인수를 수정하여 다른 JAR을 게시합니다.

이 지침은 **Apache Maven 설명서의 [타사 JAR을 원격 리포지토리에 배포하기 위한 가이드](https://maven.apache.org/guides/mini/guide-3rd-party-jars-remote.html)의 예시를 기반으로 합니다.

 자세한 내용은 Apache Maven Project 웹 사이트에서 다음 주제를 참조하세요.
+  [여러 리포지토리 설정](https://maven.apache.org/guides/mini/guide-multiple-repositories.html) 
+  [설정 참조](https://maven.apache.org/settings.html) 
+  [배포 관리](https://maven.apache.org/pom.html#Distribution_Management) 
+  [프로파일](https://maven.apache.org/pom.html#Profiles) 