選取您的 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_domain 的網域中,使用名為 my_repo 的儲存庫時,命令如下:

    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. <servers>區段新增至 ,settings.xml並參考 CODEARTIFACT_AUTH_TOKEN環境變數,讓 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、版本和檔案引數以發佈不同的 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.xml或 中也必須有pluginRepository元素pom.xml。下列範例會從 CodeArtifact 儲存庫擷取應用程式相依性和 Maven 外掛程式。

<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 專案網站上的這些主題:

隱私權網站條款Cookie 偏好設定
© 2025, Amazon Web Services, Inc.或其附屬公司。保留所有權利。