本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
CodeArtifact 与 Gradle 搭配使用
按照使用环境变量传递 CodeArtifact 身份验证令牌中所述,将身份验证令牌存入环境变量后,请按照以下说明使用存储库中的 Maven 软件包,并将新包发布到存储库。 CodeArtifact
提取依赖项
要从 Gradle 版本 CodeArtifact 中获取依赖关系,请按以下步骤操作。
从 Gradle CodeArtifact 版本中获取依赖关系
如果还没有,请按照中的步骤创建 CodeArtifact 身份验证令牌并将其存储在环境变量中使用环境变量传递身份验证令牌。
-
在项目
build.gradle文件中的repositories部分添加一个maven部分。maven { url 'https://my_domain-111122223333.d.codeartifact.region.amazonaws.com/maven/my_repo/' credentials { username "aws" password System.env.CODEARTIFACT_AUTH_TOKEN } }前面示例
url中的是存储 CodeArtifact 库的终端节点。Gradle 使用端点来连接到您的存储库。在示例中,my_domain是域的名称,111122223333是域所有者的 ID,my_repo是存储库的名称。您可以使用get-repository-endpointAWS CLI 命令检索存储库的终端节点。例如,在名为的域
my_repo中有一个名为的存储库my_domain,命令如下所示:aws codeartifact get-repository-endpoint --domainmy_domain--domain-owner111122223333--repositorymy_repo--format mavenget-repository-endpoint命令会返回存储库端点:url 'https://my_domain-111122223333.d.codeartifact.region.amazonaws.com/maven/my_repo/'前面示例中的
credentials对象包括您在步骤 1 中创建的 CodeArtifact 身份验证令牌,Gradle 使用该令牌进行身份验证。 CodeArtifact注意
要使用双堆栈端点,请使用该
codeartifact.端点。region.on.aws (可选)-要使用 CodeArtifact 存储库作为项目依赖项的唯一来源,请
repositories从中移除任何其他部分build.gradle。如果您有多个存储库,Gradle 会按照列出的顺序在每个存储库中搜索依赖项。配置存储库后,您可以使用标准 Gradle 语法在
dependencies部分添加项目依赖项。dependencies { implementation 'com.google.guava:guava:27.1-jre' implementation 'commons-cli:commons-cli:1.4' testImplementation 'org.testng:testng:6.14.3' }
提取插件
默认情况下,Gradle 会解析来自公有 Gradle 插件门户
从 CodeArtifact 存储库中提取插件
如果还没有,请按照中的步骤创建 CodeArtifact 身份验证令牌并将其存储在环境变量中使用环境变量传递身份验证令牌。
在
settings.gradle文件中添加一个pluginManagement块。pluginManagement块必须出现在settings.gradle中的任何其他语句之前,请参阅以下代码段:pluginManagement { repositories { maven { name 'my_repo' url 'https://my_domain-111122223333.d.codeartifact.region.amazonaws.com/maven/my_repo/' credentials { username 'aws' password System.env.CODEARTIFACT_AUTH_TOKEN } } } }
这将确保 Gradle 会解析来自指定存储库的插件。存储库必须有一个与 Gradle 插件门户网站(例如 gradle-plugins-store)有外部连接的上游存储库,以便构建版本可以使用常用的 Gradle 插件。有关更多信息,请参阅 Gradle 文档
发布构件
本节介绍如何将使用 Gradle 构建的 Java 库发布到 CodeArtifact存储库。
首先,将 maven-publish 插件添加到项目 build.gradle 文件的 plugins 部分。
plugins { id 'java-library' id 'maven-publish' }
接下来,在项目 build.gradle 文件中添加一个 publishing 部分。
publishing { publications { mavenJava(MavenPublication) { groupId = 'group-id' artifactId = 'artifact-id' version = 'version' from components.java } } repositories { maven { url 'https://my_domain-111122223333.d.codeartifact.region.amazonaws.com/maven/my_repo/' credentials { username "aws" password System.env.CODEARTIFACT_AUTH_TOKEN } } } }
maven-publish 插件根据 publishing 部分中指定的 groupId、artifactId 和 version 生成 POM 文件。
对 build.gradle 作出的这些更改完成后,运行以下命令来构建项目并将其上传到存储库。
./gradlew publish
使用 list-package-versions 来确认程序包已成功发布。
aws codeartifact list-package-versions --domainmy_domain--domain-owner111122223333--repositorymy_repo--formatmaven\ --namespacecom.company.framework--packagemy-package-name
示例输出:
{ "format": "maven", "namespace": "com.company.framework", "package": "example", "versions": [ { "version": "1.0", "revision": "REVISION-SAMPLE-1-C7F4S5E9B772FC", "status": "Published" } ] }
有关更多信息,请参阅 Gradle 网站上的以下主题:
在 IntelliJ IDEA 中运行 Gradle 构建
你可以在 IntelliJ IDEA 中运行 Gradle 构建,从中提取依赖关系。 CodeArtifact要进行身份验证 CodeArtifact,您必须向 Gradle 提供 CodeArtifact 授权令牌。提供身份验证令牌的方法有三种。
方法 1:将身份验证令牌存储在
gradle.properties中。如果您能够覆盖gradle.properties文件或添加内容,请使用此方法。方法 2:将身份验证令牌存储在单独的文件中。如果您不想修改
gradle.properties文件,请使用此方法。方法 3:通过在
build.gradle中以内联脚本形式运行aws,为每次运行生成新的身份验证令牌。如果您希望 Gradle 脚本在每次运行时都提取一个新令牌,请使用此方法。令牌不会存储在文件系统中。