本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
按照使用环境变量传递 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-endpoint
AWS CLI 命令检索存储库的终端节点。例如,在名为的域
my_repo
中有一个名为的存储库my_domain
,命令如下所示:aws codeartifact get-repository-endpoint --domain
my_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 --domain
my_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 脚本在每次运行时都提取一个新令牌,请使用此方法。令牌不会存储在文件系统中。
方法 1:将身份验证令牌存储在 gradle.properties
中
注意
该示例显示了位于 GRADLE_USER_HOME
中的 gradle.properties
文件。
-
使用以下代码段来更新
build.gradle
文件:repositories { maven { url 'https://
my_domain
-111122223333
.d.codeartifact.region
.amazonaws.com/maven/my_repo
/' credentials { username "aws" password "$codeartifactToken" } } } -
要从中获取插件 CodeArtifact,请在
settings.gradle
文件中添加一个pluginManagement
块。pluginManagement
块必须出现在settings.gradle
中的任何其他语句之前。pluginManagement { repositories { maven { name 'my_repo' url 'https://
my_domain
-111122223333
.codeartifact.region
.amazonaws.com/maven/my_repo
/' credentials { username 'aws' password "$codeartifactToken" } } } } -
获取身份 CodeArtifact 验证令牌:
export CODEARTIFACT_AUTH_TOKEN=`aws codeartifact get-authorization-token --domain
my_domain
--domain-owner111122223333
--query authorizationToken --output text --profileprofile-name
` -
将身份验证令牌写入
gradle.properties
文件中:echo "codeartifactToken=$CODEARTIFACT_AUTH_TOKEN" > ~/.gradle/gradle.properties