

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

# curl을 사용한 게시
<a name="maven-curl"></a>

이 섹션에서는 HTTP 클라이언트 `curl`을 사용하여 CodeArtifact 리포지토리에 Maven 아티팩트를 게시하는 방법을 보여줍니다. 환경에 Maven 클라이언트가 없거나 이 클라이언트를 설치하려는 경우, `curl`을 사용하여 아티팩트를 게시하는 것이 도움이 될 수 있습니다.

**`curl`을 사용하여 Maven 아티팩트를 게시**

1. [환경 변수를 사용하여 인증 토큰 전달](tokens-authentication.md#env-var)의 단계에 따라 CodeArtifact 인증 토큰을 가져오고 이 단계로 돌아갑니다.

1. 다음 `curl` 명령을 사용하여 JAR을 CodeArtifact 리포지토리에 게시합니다.

   이 절차의 각 `curl` 명령에서 다음 자리 표시자를 변경합니다.
   + {{my\_domain}}을 CodeArtifact 도메인 이름으로 변경합니다.
   + {{111122223333}}을 CodeArtifact 도메인 소유자의 ID로 변경합니다.
   + {{us-west-2}}를 CodeArtifact 도메인이 위치한 리전으로 변경합니다.
   + {{my\_repo}}를 CodeArtifact 리포지토리 이름으로 변경합니다.

   ```
   curl --request PUT https://{{my_domain}}-{{111122223333}}.d.codeartifact.{{us-west-2}}.amazonaws.com/maven/{{my_repo}}/{{com/mycompany/app/my-app/1.0/my-app-1.0.jar}} \
        --user "aws:$CODEARTIFACT_AUTH_TOKEN" --header "Content-Type: application/octet-stream" \
        --data-binary @{{my-app-1.0.jar}}
   ```
**중요**  
`--data-binary` 파라미터 값 앞에 문자 `@`을 붙여야 합니다. 값을 따옴표로 묶을 때는 따옴표 안에 `@`을 포함해야 합니다.

1. 다음 `curl` 명령을 사용하여 POM을 CodeArtifact 리포지토리에 게시합니다.

   ```
   curl --request PUT https://{{my_domain}}-{{111122223333}}.d.codeartifact.{{us-west-2}}.amazonaws.com/maven/{{my_repo}}/{{com/mycompany/app/my-app/1.0/my-app-1.0.pom}} \
        --user "aws:$CODEARTIFACT_AUTH_TOKEN" --header "Content-Type: application/octet-stream" \
        --data-binary @{{my-app-1.0.pom}}
   ```

1. 이때 Maven 아티팩트는 상태가 `Unfinished`인 CodeArtifact 리포지토리에 저장됩니다. 패키지를 사용하려면 패키지가 `Published` 상태에 있어야 합니다. 패키지에 `maven-metadata.xml` 파일을 업로드하거나 [UpdatePackageVersionsStatus API](https://docs.aws.amazon.com/codeartifact/latest/APIReference/API_UpdatePackageVersionsStatus.html)를 직접적으로 호출하여 상태를 변경함으로써 패키지를 `Unfinished`에서 `Published`로 이동할 수 있습니다.

   1.  옵션 1: 다음 `curl` 명령을 사용하여 패키지에 `maven-metadata.xml` 파일을 추가합니다.

      ```
      curl --request PUT https://{{my_domain}}-{{111122223333}}.d.codeartifact.{{region}}.amazonaws.com/maven/{{my_repo}}/{{com/mycompany/app/my-app/maven-metadata.xml}} \
           --user "aws:$CODEARTIFACT_AUTH_TOKEN" --header "Content-Type: application/octet-stream" \
           --data-binary @{{maven-metadata.xml}}
      ```

      다음은 `maven-metadata.xml` 파일의 내용을 보여주는 예제입니다.

      ```
      <metadata modelVersion="1.1.0">
          <groupId>com.mycompany.app</groupId>
          <artifactId>my-app</artifactId>
          <versioning>
              <latest>1.0</latest>
              <release>1.0</release>
              <versions>
                  <version>1.0</version>
              </versions>
              <lastUpdated>20200731090423</lastUpdated>
          </versioning>
      </metadata>
      ```

   1.  옵션 2: `UpdatePackageVersionsStatus` API를 사용하여 패키지 상태를 `Published`로 업데이트합니다.

      ```
      aws codeartifact update-package-versions-status \
          --domain {{my_domain}} \
          --domain-owner {{111122223333}} \
          --repository {{my_repo}} \
          --format maven \
          --namespace {{com.mycompany.app}} \
          --package {{my-app}} \
          --versions {{1.0}} \
          --target-status Published
      ```

아티팩트의 JAR 파일만 있는 경우 `mvn`을 사용하여 CodeArtifact 리포지토리에 사용 가능한 패키지 버전을 게시할 수 있습니다. 이는 아티팩트의 소스 코드나 POM에 액세스할 수 없는 경우에 도움이 될 수 있습니다. 세부 정보는 [타사 아티팩트 게시](maven-mvn.md#publishing-third-party-artifacts) 섹션을 참조하세요.