Gradle CodeArtifact 과 함께 사용 - CodeArtifact

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

Gradle CodeArtifact 과 함께 사용

환경 변수 를 사용하여 CodeArtifact 인증 토큰 전달 에 설명된 대로 환경 변수에 인증 토큰이 있으면 다음 지침에 따라 리포지토리에서 Maven 패키지를 사용하고 새 패키지를 게시합니다 CodeArtifact. 환경 변수를 사용하여 인증 토큰 전달

종속성 가져오기

Gradle 빌드 CodeArtifact 에서 에서 종속성을 가져오려면 다음 절차를 사용합니다.

Gradle 빌드 CodeArtifact 에서 에서 종속성을 가져오려면
  1. 그렇지 않은 경우 의 절차에 따라 CodeArtifact 인증 토큰을 생성하여 환경 변수에 저장합니다환경 변수를 사용하여 인증 토큰 전달.

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

    get-repository-endpoint 명령은 리포지토리 엔드포인트를 반환합니다.

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

    이전 예제의 credentials 객체에는 Gradle이 에 인증하는 데 사용하는 1단계에서 생성한 CodeArtifact 인증 토큰이 포함됩니다 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. 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 플러그인 포털(예: gradle-plugins-store)에 대한 외부 연결이 있는 업스트림 리포지토리가 있어야 합니다. 자세한 내용은 Gradle 설명서를 참조하세요.

아티팩트 게시

이 섹션에서는 Gradle로 구축된 Java 라이브러리를 리포지토리에 게시하는 CodeArtifact 방법을 설명합니다.

먼저 프로젝트의 build.gradle 파일 중 plugins 섹션에 maven-publish 플러그인을 추가합니다.

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 섹션에 version 지정된 groupId, artifactId및 를 기반으로 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에서 Gradle 빌드 실행 IDEA

IntelliJ에서 에서 종속성을 IDEA 가져오는 Gradle 빌드를 실행할 수 있습니다 CodeArtifact. 로 인증하려면 Gradle에 CodeArtifact 권한 부여 토큰을 제공해야 CodeArtifact합니다. 인증 토큰을 제공하는 방법은 세 가지가 있습니다.

  • 방법 1: 인증 토큰을 gradle.properties에 저장. gradle.properties 파일의 내용을 덮어쓰거나 추가할 수 있는 경우, 이 방법을 사용합니다.

  • 방법 2: 인증 토큰을 별도의 파일에 저장. gradle.properties 파일을 수정하지 않으려면 이 방법을 사용하세요.

  • 방법 3: build.gradle에서 aws를 인라인 스크립트로 실행하여 실행할 때마다 새 인증 토큰을 생성. 실행할 때마다 Gradle 스크립트가 새 토큰을 가져오도록 하려면 이 방법을 사용하세요. 토큰은 파일 시스템에 저장되지 않습니다.

Token stored in gradle.properties
방법 1: 인증 토큰을 gradle.properties에 저장.
참고

예제는 GRADLE_USER_HOME에 있는 gradle.properties 파일을 보여줍니다.

  1. 다음 코드 조각을 사용하여 build.gradle 파일을 업데이트:

    repositories { maven { url 'https://my_domain-111122223333.d.codeartifact.region.amazonaws.com/maven/my_repo/' credentials { username "aws" password "$codeartifactToken" } } }
  2. 에서 플러그인을 가져오려면 settings.gradle 파일에 pluginManagement 블록을 CodeArtifact추가합니다. 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. 에서 플러그인을 가져오려면 settings.gradle 파일에 pluginManagement 블록을 CodeArtifact추가합니다. 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: build.gradle에서 aws를 인라인 스크립트로 실행하여 실행할 때마다 새 인증 토큰을 생성
  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. 에서 플러그인을 가져오려면 settings.gradle 파일에 pluginManagement 블록을 CodeArtifact추가합니다. 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 } } } }