mvn CodeArtifact 과 함께 사용 - CodeArtifact

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

mvn CodeArtifact 과 함께 사용

mvn 명령을 사용하여 Maven 빌드를 실행합니다. 이 섹션에서는 CodeArtifact 리포지토리를 사용하도록 mvn 를 구성하는 방법을 보여줍니다.

종속성 가져오기

CodeArtifact 리포지토리에서 종속성을 가져오mvn도록 를 구성하려면 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_repo 라는 도메인 내부 my_domain, 명령은 다음과 같습니다.

    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 아티팩트를 리 CodeArtifact 포지토리mvn에 게시하려면 ~/.m2/settings.xml 및 프로젝트 도 편집해야 합니다POM.

  1. 그렇지 않은 경우 에 설명된 대로 환경 변수에 CodeArtifact 인증 토큰을 생성하고 저장환경 변수를 사용하여 인증 토큰 전달하여 CodeArtifact 리포지토리에 대한 인증을 설정합니다.

  2. Maven이 HTTP 요청에서 토큰settings.xml을 전달하도록 CODEARTIFACT_AUTH_TOKEN 환경 변수를 참조하여 <servers> 섹션을 에 추가합니다.

    <settings> ... <servers> <server> <id>codeartifact</id> <username>aws</username> <password>${env.CODEARTIFACT_AUTH_TOKEN}</password> </server> </servers> ... </settings>
  3. 프로젝트의 pom.xml<distributionManagement> 섹션을 추가합니다.

    <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" } ] }

타사 아티팩트 게시

를 사용하여 리 CodeArtifact 포지토리에 타사 Maven 아티팩트를 게시할 수 있습니다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에서 패키지를 가져옵니다. mvn 항상 리 CodeArtifact 포지토리를 사용하도록 settings.xml하려면 에 mirrors 요소를 추가합니다.

<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 또는 pom.xml에도 pluginRepository 요소가 있어야 합니다. 다음 예제는 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 Project 웹 사이트에서 다음 주제를 참조하세요.