选择您的 Cookie 首选项

我们使用必要 Cookie 和类似工具提供我们的网站和服务。我们使用性能 Cookie 收集匿名统计数据,以便我们可以了解客户如何使用我们的网站并进行改进。必要 Cookie 无法停用,但您可以单击“自定义”或“拒绝”来拒绝性能 Cookie。

如果您同意,AWS 和经批准的第三方还将使用 Cookie 提供有用的网站功能、记住您的首选项并显示相关内容,包括相关广告。要接受或拒绝所有非必要 Cookie,请单击“接受”或“拒绝”。要做出更详细的选择,请单击“自定义”。

CodeArtifact 与 mvn 一起使用

聚焦模式
CodeArtifact 与 mvn 一起使用 - CodeArtifact

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

您可以使用 mvn 命令来执行 Maven 构建。本节介绍如何配置mvn以使用 CodeArtifact 存储库。

提取依赖项

mvn要配置为从 CodeArtifact 存储库获取依赖项,必须编辑 Maven 配置文件settings.xml,也可以编辑项目的 POM。

  1. 如果还没有,请按照中所述在环境变量中创建 CodeArtifact 身份验证令牌并将其存储在环境变量中使用环境变量传递身份验证令牌,以设置对存储 CodeArtifact 库的身份验证。

  2. settings.xml 中(该文件通常位于 ~/.m2/settings.xml),添加一个引用 CODEARTIFACT_AUTH_TOKEN 环境变量的 <servers> 部分,以便 Maven 可在 HTTP 请求中传递令牌。

    <settings> ... <servers> <server> <id>codeartifact</id> <username>aws</username> <password>${env.CODEARTIFACT_AUTH_TOKEN}</password> </server> </servers> ... </settings>
  3. <repository>元素中添加 CodeArtifact 仓库的 URL 端点。您可以在 settings.xml 或项目的 POM 文件中执行此操作。

    您可以使用get-repository-endpoint AWS CLI 命令检索仓库的终端节点。

    例如,在名为的域my_repo中有一个名为的存储库my_domain,命令如下所示:

    aws codeartifact get-repository-endpoint --domain my_domain --repository my_repo --format maven

    get-repository-endpoint 命令会返回存储库端点:

    url 'https://my_domain-111122223333.d.codeartifact.us-west-2.amazonaws.com/maven/my_repo/'
    注意

    要使用双堆栈端点,请使用该codeartifact.region.on.aws端点。

    按如下方式将存储库端点添加到 settings.xml

    <settings> ... <profiles> <profile> <id>default</id> <repositories> <repository> <id>codeartifact</id> <url>https://my_domain-111122223333.d.codeartifact.us-west-2.amazonaws.com/maven/my_repo/</url> </repository> </repositories> </profile> </profiles> <activeProfiles> <activeProfile>default</activeProfile> </activeProfiles> ... </settings>

    或者,您可以将该<repositories>部分添加到项目 POM 文件中,仅 CodeArtifact 用于该项目。

    <project> ... <repositories> <repository> <id>codeartifact</id> <name>codeartifact</name> <url>https://my_domain-111122223333.d.codeartifact.us-west-2.amazonaws.com/maven/my_repo/</url> </repository> </repositories> ... </project>
重要

可以在 <id> 元素中使用任何值,但必须与 <server><repository> 元素中的值相同。这样,就可以将指定的凭据包含在对的请求中 CodeArtifact。

更改这些配置后,就可以构建项目了。

mvn compile

Maven 会记录下载到控制台的所有依赖项的完整 URL。

[INFO] ------------------< com.example.example:myapp >------------------- [INFO] Building myapp 1.0 [INFO] --------------------------------[ jar ]--------------------------------- Downloading from codeartifact: https://<domain>.d.codeartifact.us-west-2.amazonaws.com/maven/myrepo/commons-cli/commons-cli/1.4/commons-cli-1.4.pom Downloaded from codeartifact: https://<domain>.d.codeartifact.us-west-2.amazonaws.com/maven/myrepo/commons-cli/commons-cli/1.4/commons-cli-1.4.pom (11 kB at 3.9 kB/s) Downloading from codeartifact: https://<domain>.d.codeartifact.us-west-2.amazonaws.com/maven/myrepo/org/apache/commons/commons-parent/42/commons-parent-42.pom Downloading from codeartifact: https://<domain>.d.codeartifact.us-west-2.amazonaws.com/maven/myrepo/org/apache/commons/commons-parent/42/commons-parent-42.pom Downloaded from codeartifact: https://<domain>.d.codeartifact.us-west-2.amazonaws.com/maven/myrepo/org/apache/commons/commons-parent/42/commons-parent-42.pom (68 kB at 123 kB/s) Downloading from codeartifact: https://<domain>.d.codeartifact.us-west-2.amazonaws.com/maven/myrepo/commons-cli/commons-cli/1.4/commons-cli-1.4.jar Downloaded from codeartifact: https://<domain>.d.codeartifact.us-west-2.amazonaws.com/maven/myrepo/commons-cli/commons-cli/1.4/commons-cli-1.4.jar (54 kB at 134 kB/s)

发布构件

要将 Maven 工件发布mvn到 CodeArtifact 存储库,还必须编辑~/.m2/settings.xml和项目 POM。

  1. 如果还没有,请按照中所述在环境变量中创建 CodeArtifact 身份验证令牌并将其存储在环境变量中使用环境变量传递身份验证令牌,以设置对存储 CodeArtifact 库的身份验证。

  2. settings.xml 中添加一个引用 CODEARTIFACT_AUTH_TOKEN 环境变量的 <servers> 部分,以便 Maven 可在 HTTP 请求中传递令牌。

    <settings> ... <servers> <server> <id>codeartifact</id> <username>aws</username> <password>${env.CODEARTIFACT_AUTH_TOKEN}</password> </server> </servers> ... </settings>
  3. <distributionManagement> 部分添加到项目的 pom.xml

    <project> ... <distributionManagement> <repository> <id>codeartifact</id> <name>codeartifact</name> <url>https://my_domain-111122223333.d.codeartifact.us-west-2.amazonaws.com/maven/my_repo/</url> </repository> </distributionManagement> ... </project>

更改这些配置后,就可以开始构建项目并将项目发布到指定的存储库。

mvn deploy

使用 list-package-versions 来确认程序包已成功发布。

aws codeartifact list-package-versions --domain my_domain --domain-owner 111122223333 --repository my_repo --format maven \ --namespace com.company.framework --package my-package-name

示例输出:

{ "defaultDisplayVersion": null, "format": "maven", "namespace": "com.company.framework", "package": "my-package-name", "versions": [ { "version": "1.0", "revision": "REVISION-SAMPLE-1-C7F4S5E9B772FC", "status": "Published" } ] }

发布第三方构件

您可以使用将第三方 Maven 工件发布到 CodeArtifact 存储库。mvn deploy:deploy-file这对于想要发布构件且只有 JAR 文件且无权访问程序包源代码或 POM 文件的用户很有用。

mvn deploy:deploy-file 命令会根据命令行中传递的信息生成 POM 文件。

发布第三方 Maven 构件
  1. 如果还没有,请按照中所述在环境变量中创建 CodeArtifact 身份验证令牌并将其存储在环境变量中使用环境变量传递身份验证令牌,以设置对存储 CodeArtifact 库的身份验证。

  2. 创建 ~/.m2/settings.xml 文件并输入以下内容:

    <settings> <servers> <server> <id>codeartifact</id> <username>aws</username> <password>${env.CODEARTIFACT_AUTH_TOKEN}</password> </server> </servers> </settings>
  3. 运行 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=codeartifact \ -Durl=https://my_domain-111122223333.d.codeartifact.region.amazonaws.com/maven/repo-name/
    注意

    上面的示例会发布 commons-cli 1.4。修改 groupID、artifactID、version 和 file 参数来发布另一个 JAR。

这些说明基于 Apache Maven 文档中关于 JARs 将第三方部署到远程存储库的指南中的示例。

将 Maven 依赖项下载限制到存储库 CodeArtifact

如果无法从已配置的存储库提取程序包,则默认情况下,mvn 命令会从 Maven Central 提取程序包。将mirrors元素添加到settings.xml,以便mvn始终使用您的 CodeArtifact 存储库。

<settings> ... <mirrors> <mirror> <id>central-mirror</id> <name>CodeArtifact Maven Central mirror</name> <url>https://my_domain-111122223333.d.codeartifact.us-west-2.amazonaws.com/maven/my_repo/</url> <mirrorOf>central</mirrorOf> </mirror> </mirrors> ... </settings>

如果添加 mirrors 元素,则在 settings.xmlpom.xml 中还必须有一个 pluginRepository 元素。以下示例从存储库中获取应用程序依赖关系和 Maven 插件。 CodeArtifact

<settings> ... <profiles> <profile> <pluginRepositories> <pluginRepository> <id>codeartifact</id> <name>CodeArtifact Plugins</name> <url>https://my_domain-111122223333.d.codeartifact.us-west-2.amazonaws.com/maven/my_repo/</url> <releases> <enabled>true</enabled> </releases> <snapshots> <enabled>true</enabled> </snapshots> </pluginRepository> </pluginRepositories> </profile> </profiles> ... </settings>

以下示例从 CodeArtifact 存储库中获取应用程序依赖关系,并从 Maven Central 获取 Maven 插件。

<profiles> <profile> <id>default</id> ... <pluginRepositories> <pluginRepository> <id>central-plugins</id> <name>Central Plugins</name> <url>https://repo.maven.apache.org/maven2/</url> <releases> <enabled>true</enabled> </releases> <snapshots> <enabled>true</enabled> </snapshots> </pluginRepository> </pluginRepositories> .... </profile> </profiles>

Apache Maven 项目信息

有关 Maven 的更多信息,请参阅 Apache Maven Project 网站上的以下主题:

隐私网站条款Cookie 首选项
© 2025, Amazon Web Services, Inc. 或其附属公司。保留所有权利。