本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
使用 curl 进行发布
本节介绍如何使用 HTTP 客户端将 Maven 工件发布curl到 CodeArtifact 存储库。如果您的环境中没有 Maven 客户端或想要安装 Maven 客户端,则使用 curl 发布构件会很有用。
使用 curl 发布 Maven 构件
-
按照中的步骤获取 CodeArtifact 授权令牌,使用环境变量传递身份验证令牌然后返回到这些步骤。
-
使用以下
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参数的值前面加上一个@字符。将值放在引号中时,@必须包含在引号内。 -
使用以下
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 -
此时,Maven 工件将位于您的 CodeArtifact 存储库中,状态为。
Unfinished为了能够使用程序包,程序包必须处于Published状态。您可以将maven-metadata.xml文件上传Unfinished到Published您的包中,或者调用 UpdatePackageVersionsStatus API 更改状态,从而将包从移动到。-
选项 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:使用
UpdatePackageVersionsStatusAPI 将程序包状态更新为Published。aws codeartifact update-package-versions-status \ --domainmy_domain\ --domain-owner111122223333\ --repositorymy_repo\ --format maven \ --namespacecom.mycompany.app\ --packagemy-app\ --versions1.0\ --target-status Published
-
如果您只有工件的 JAR 文件,则可以使用将消耗包版本发布到 CodeArtifact 存储库。mvn如果您无法访问构件的源代码或 POM,此方法会很有用。有关详细信息,请参阅发布第三方构件。