本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
搭配 Gradle 使用 CodeArtifact
在環境變數中擁有 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-endpointAWS CLI 命令來擷取儲存庫的端點。例如,在名為
my_domain 的網域中,使用名為 my_repo的儲存庫時,命令如下: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 驗證權杖,請依照 中的程序,將權杖存放在 環境變數中使用 環境變數傳遞身分驗證字符。
將
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 --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:在 中
aws以內嵌指令碼執行 ,為每次執行產生新的身分驗證權杖build.gradle。如果您希望 Gradle 指令碼在每次執行時擷取新的字符,請使用此方法。字符不會存放在檔案系統上。