本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
在環境變數中擁有 CodeArtifact 驗證權杖後,如使用環境變數傳遞驗證權杖中所述,請遵循這些指示從 CodeArtifact 儲存庫取用 Maven 套件,並將新套件發佈至該儲存庫。
擷取相依性
若要從 Gradle 組建中的 CodeArtifact 擷取相依性,請使用下列程序。
在 Gradle 建置中從 CodeArtifact 擷取相依性
如果您尚未建立 CodeArtifact 驗證權杖,請依照 中的程序,將權杖存放在 環境變數中使用 環境變數傳遞身分驗證字符。
-
將
maven
區段新增至專案build.gradle
檔案中的repositories
區段。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_domain 的網域中,使用名為 my_repo
的儲存庫時,命令如下: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 驗證權杖,請依照 中的程序,將權杖存放在 環境變數中使用 環境變數傳遞身分驗證字符。
將
pluginManagement
區塊新增至您的settings.gradle
檔案。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'
}
接著,將publishing
區段新增至專案build.gradle
檔案。
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
區段中version
指定的 groupId
、 artifactId
和 產生 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:在 中
aws
以內嵌指令碼執行 ,為每次執行產生新的身分驗證權杖build.gradle
。如果您希望 Gradle 指令碼在每次執行時擷取新的字符,請使用此方法。字符不會存放在檔案系統上。
方法 1:將身分驗證字符存放在 gradle.properties
注意
此範例顯示位於 中的 gradle.properties
檔案GRADLE_USER_HOME
。
-
使用下列程式碼片段更新您的
build.gradle
檔案:repositories { maven { url 'https://
my_domain
-111122223333
.d.codeartifact.region
.amazonaws.com/maven/my_repo
/' credentials { username "aws" password "$codeartifactToken" } } } -
若要從 CodeArtifact 擷取外掛程式,請將
pluginManagement
區塊新增至settings.gradle
檔案。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