選取您的 Cookie 偏好設定

我們使用提供自身網站和服務所需的基本 Cookie 和類似工具。我們使用效能 Cookie 收集匿名統計資料,以便了解客戶如何使用我們的網站並進行改進。基本 Cookie 無法停用,但可以按一下「自訂」或「拒絕」以拒絕效能 Cookie。

如果您同意,AWS 與經核准的第三方也會使用 Cookie 提供實用的網站功能、記住您的偏好設定,並顯示相關內容,包括相關廣告。若要接受或拒絕所有非必要 Cookie,請按一下「接受」或「拒絕」。若要進行更詳細的選擇,請按一下「自訂」。

搭配 Gradle 使用 CodeArtifact

焦點模式
搭配 Gradle 使用 CodeArtifact - CodeArtifact

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

在環境變數中擁有 CodeArtifact 驗證權杖後,如使用環境變數傳遞驗證權杖中所述,請遵循這些指示從 CodeArtifact 儲存庫取用 Maven 套件,並將新套件發佈至該儲存庫。

擷取相依性

若要從 Gradle 組建中的 CodeArtifact 擷取相依性,請使用下列程序。

在 Gradle 建置中從 CodeArtifact 擷取相依性
  1. 如果您尚未建立 CodeArtifact 驗證權杖,請依照 中的程序,將權杖存放在 環境變數中使用 環境變數傳遞身分驗證字符

  2. 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-owner 111122223333 --repository my_repo --format maven

    get-repository-endpoint 命令將傳回儲存庫端點:

    url 'https://my_domain-111122223333.d.codeartifact.region.amazonaws.com/maven/my_repo/'

    上述範例中的 credentials 物件包含您在步驟 1 中建立的 CodeArtifact 驗證字符,Gradle 會使用此字符來驗證 CodeArtifact。

    注意

    若要使用雙堆疊端點,請使用 codeartifact.region.on.aws端點。

  3. (選用) - 若要使用 CodeArtifact 儲存庫做為專案相依性的唯一來源,repositories請從 移除 中的任何其他區段build.gradle。如果您有多個儲存庫,Gradle 會依列出的順序搜尋每個儲存庫的相依性。

  4. 設定儲存庫之後,您可以使用標準 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 儲存庫提取外掛程式
  1. 如果您尚未建立 CodeArtifact 驗證權杖,請依照 中的程序,將權杖存放在 環境變數中使用 環境變數傳遞身分驗證字符

  2. 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指定的 groupIdartifactId和 產生 POM 檔案。

這些變更為 build.gradle 完成後,請執行下列命令來建置專案,並將其上傳至儲存庫。

./gradlew publish

使用 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

輸出範例:

{ "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 指令碼在每次執行時擷取新的字符,請使用此方法。字符不會存放在檔案系統上。

Token stored in gradle.properties
方法 1:將身分驗證字符存放在 gradle.properties
注意

此範例顯示位於 中的 gradle.properties 檔案GRADLE_USER_HOME

  1. 使用下列程式碼片段更新您的build.gradle檔案:

    repositories { maven { url 'https://my_domain-111122223333.d.codeartifact.region.amazonaws.com/maven/my_repo/' credentials { username "aws" password "$codeartifactToken" } } }
  2. 若要從 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" } } } }
  3. 擷取 CodeArtifact 驗證字符:

    export CODEARTIFACT_AUTH_TOKEN=`aws codeartifact get-authorization-token --domain my_domain --domain-owner 111122223333 --query authorizationToken --output text --profile profile-name`
  4. 將身分驗證字符寫入 gradle.properties 檔案:

    echo "codeartifactToken=$CODEARTIFACT_AUTH_TOKEN" > ~/.gradle/gradle.properties
Token stored in separate file
方法 2:將身分驗證字符存放在單獨的檔案中
  1. 使用下列程式碼片段更新您的build.gradle檔案:

    def props = new Properties() file("file").withInputStream { props.load(it) } repositories { maven { url 'https://my_domain-111122223333.d.codeartifact.region.amazonaws.com/maven/my_repo/' credentials { username "aws" password props.getProperty("codeartifactToken") } } }
  2. 若要從 CodeArtifact 擷取外掛程式,請將 pluginManagement區塊新增至 settings.gradle 檔案。pluginManagement 區塊必須出現在 中的任何其他陳述式之前settings.gradle

    pluginManagement { def props = new Properties() file("file").withInputStream { props.load(it) } repositories { maven { name 'my_repo' url 'https://my_domain-111122223333.codeartifact.region.amazonaws.com/maven/my_repo/' credentials { username 'aws' password props.getProperty("codeartifactToken") } } } }
  3. 擷取 CodeArtifact 驗證字符:

    export CODEARTIFACT_AUTH_TOKEN=`aws codeartifact get-authorization-token --domain my_domain --domain-owner 111122223333 --query authorizationToken --output text --profile profile-name`
  4. 將身分驗證字符寫入檔案中指定的build.gradle檔案:

    echo "codeartifactToken=$CODEARTIFACT_AUTH_TOKEN" > file
Token generated for each run in build.gradle
方法 3:在 中aws以內嵌指令碼執行 ,為每次執行產生新的身分驗證權杖 build.gradle
  1. 使用下列程式碼片段更新您的build.gradle檔案:

    def codeartifactToken = "aws codeartifact get-authorization-token --domain my_domain --domain-owner 111122223333 --query authorizationToken --output text --profile profile-name".execute().text repositories { maven { url 'https://my_domain-111122223333.d.codeartifact.region.amazonaws.com/maven/my_repo/' credentials { username "aws" password codeartifactToken } } }
  2. 若要從 CodeArtifact 擷取外掛程式,請將 pluginManagement區塊新增至 settings.gradle 檔案。pluginManagement 區塊必須出現在 中的任何其他陳述式之前settings.gradle

    pluginManagement { def codeartifactToken = "aws codeartifact get-authorization-token --domain my_domain --domain-owner 111122223333 --query authorizationToken --output text --profile profile-name".execute().text repositories { maven { name 'my_repo' url 'https://my_domain-111122223333.codeartifact.region.amazonaws.com/maven/my_repo/' credentials { username 'aws' password codeartifactToken } } } }
方法 1:將身分驗證字符存放在 gradle.properties
注意

此範例顯示位於 中的 gradle.properties 檔案GRADLE_USER_HOME

  1. 使用下列程式碼片段更新您的build.gradle檔案:

    repositories { maven { url 'https://my_domain-111122223333.d.codeartifact.region.amazonaws.com/maven/my_repo/' credentials { username "aws" password "$codeartifactToken" } } }
  2. 若要從 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" } } } }
  3. 擷取 CodeArtifact 驗證字符:

    export CODEARTIFACT_AUTH_TOKEN=`aws codeartifact get-authorization-token --domain my_domain --domain-owner 111122223333 --query authorizationToken --output text --profile profile-name`
  4. 將身分驗證字符寫入 gradle.properties 檔案:

    echo "codeartifactToken=$CODEARTIFACT_AUTH_TOKEN" > ~/.gradle/gradle.properties
隱私權網站條款Cookie 偏好設定
© 2025, Amazon Web Services, Inc.或其附屬公司。保留所有權利。