使用 curl 進行發佈 - CodeArtifact

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

使用 curl 進行發佈

本節説明如何使用 HTTP 客户端curl將 Maven 工件發佈到 CodeArtifact 儲存庫。使用發佈成品curl在您的環境中沒有或想要安裝 Maven 客户端時非常有用。

發佈一個 Maven 工件curl
  1. FETCH CodeArtifact 授權令牌,請按照使用環境變數傳遞身分驗證權杖並返回到這些步驟。

  2. 使用以下內容curl命令將 JAR 發佈到 CodeArtifact :儲存庫

    在每個curl命令,取代下列預留位置:

    • Replace我的域與您的 CodeArtifact 網域名稱。

    • Replace111122223333使用您的擁有者的 ID CodeArtifact 網域。

    • Replaceus-west-2與您的 CodeArtifact 網域。

    • Replace我的回購與您的 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參數,並使用@character. 將值放在引號中時,@必須包含在引號內。

  3. 使用以下內容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
  4. 此時,Maven 神器將在您的 CodeArtifact 存儲庫的狀態為Unfinished。為了能夠使用該軟件包,它必須位於Published狀態。您可將軟件包從UnfinishedPublished通過上傳maven-metadata.xml文件添加到您的軟件包中,或者調用更新包裝狀態 API以更改狀態。

    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>
    2. 選項 2:將包裹狀態更新為Published使用UpdatePackageVersionsStatusAPI。

      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 文件,則可以將消耗軟件包版本發佈到 CodeArtifact 儲存庫使用mvn。如果您無權訪問工件的源代碼或 POM,這將非常有用。如需詳細資訊,請參閱 發佈第三方成品