기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.
mvn CodeArtifact 과 함께 사용
mvn
명령을 사용하여 Maven 빌드를 실행합니다. 이 섹션에서는 CodeArtifact 리포지토리를 사용하도록 mvn
를 구성하는 방법을 보여줍니다.
종속성 가져오기
CodeArtifact 리포지토리에서 종속성을 가져오mvn
도록 를 구성하려면 Maven 구성 파일, settings.xml
및 선택적으로 프로젝트의 를 편집해야 합니다POM.
그렇지 않은 경우 에 설명된 대로 환경 변수에 CodeArtifact 인증 토큰을 생성하고 저장환경 변수를 사용하여 인증 토큰 전달하여 CodeArtifact 리포지토리에 대한 인증을 설정합니다.
-
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>
-
<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.
그렇지 않은 경우 에 설명된 대로 환경 변수에 CodeArtifact 인증 토큰을 생성하고 저장환경 변수를 사용하여 인증 토큰 전달하여 CodeArtifact 리포지토리에 대한 인증을 설정합니다.
-
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>
-
프로젝트의
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-owner111122223333
--repositorymy_repo
--formatmaven
\ --namespacecom.company.framework
--packagemy-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 아티팩트 게시
그렇지 않은 경우 에 설명된 대로 환경 변수에 CodeArtifact 인증 토큰을 생성하고 저장환경 변수를 사용하여 인증 토큰 전달하여 CodeArtifact 리포지토리에 대한 인증을 설정합니다.
-
다음 콘텐츠가 포함된
~/.m2/settings.xml
파일을 생성합니다.<settings> <servers> <server> <id>codeartifact</id> <username>aws</username> <password>${env.CODEARTIFACT_AUTH_TOKEN}</password> </server> </servers> </settings>
-
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 웹 사이트에서 다음 주제를 참조하세요.