

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

# curl で公開する
<a name="maven-curl"></a>

このセクションでは、HTTP クライアント `curl` を使用して、Maven Artifact (アーティファクト) を CodeArtifact リポジトリに公開する方法を説明します。`curl` を使用したArtifact (アーティファクト) の公開は、Maven クライアントを環境にインストールしていない、またはインストールしたくない場合に便利です。

**`curl` を使用して Maven Artifact (アーティファクト) を公開する**

1. CodeArtifact 認可トークンを取得するには、「[環境変数を使用して認証トークンを渡す](tokens-authentication.md#env-var)」のステップに従います。その後、これらのステップに戻ります。

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 Artifact (アーティファクト) は `Unfinished` のステータスで CodeArtifact リポジトリにあります。パッケージを消費できるようにするには、パッケージが `Published` のステータスである必要があります。パッケージを `Unfinished` から `Published` に移動するには、`maven-metadata.xml` ファイルをパッケージにアップロードするか、[[UpdatePackageVersionsStatus API]](https://docs.aws.amazon.com/codeartifact/latest/APIReference/API_UpdatePackageVersionsStatus.html) を呼び出して、ステータスを変更します。

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

Artifact (アーティファクト) の JAR ファイルしかない場合は、`mvn` を使用して使用可能なパッケージ版を CodeArtifact リポジトリに公開できます。これは、Artifact (アーティファクト) のソースコードまたは POM にアクセスできない場合に便利です。詳細については、「[サードパーティのアーティファクト](maven-mvn.md#publishing-third-party-artifacts)」を参照してください。