기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.
mvn
명령을 사용하여 Maven 빌드를 실행합니다. 이 섹션에서는 CodeArtifact 리포지토리를 사용하도록 mvn
을 구성하는 방법에 대해 설명합니다.
종속성 가져오기
CodeArtifact 리포지토리에서 종속성을 가져오도록 mvn
을 구성하려면 Maven 구성 파일, settings.xml
및 프로젝트의 POM(선택 사항)을 편집해야 합니다.
아직 생성 및 저장을 하지 않았다면 CodeArtifact 리포지토리에 대한 인증을 설정하기 위해 환경 변수를 사용하여 인증 토큰 전달에 설명된 대로 환경 변수에 CodeArtifact 인증 토큰을 만들고 저장하십시오.
-
Maven이 HTTP 요청에서 토큰을 전달하도록
settings.xml
(대체로~/.m2/settings.xml
에서 볼 수 있음)에서CODEARTIFACT_AUTH_TOKEN
환경 변수에 대한 참조가 있는<servers>
섹션을 추가합니다.<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_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)
아티팩트 게시
mvn
과 함께 Maven 아티팩트를 CodeArtifact 리포지토리에 게시하려면 ~/.m2/settings.xml
및 프로젝트 POM도 편집해야 합니다.
아직 생성 및 저장을 하지 않았다면 CodeArtifact 리포지토리에 대한 인증을 설정하기 위해 환경 변수를 사용하여 인증 토큰 전달에 설명된 대로 환경 변수에 CodeArtifact 인증 토큰을 만들고 저장하십시오.
-
Maven이 HTTP 요청에서 토큰을 전달하도록
<servers>
섹션을CODEARTIFACT_AUTH_TOKEN
환경 변수에 대한 참조가 있는settings.xml
에 추가합니다.<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"
}
]
}
타사 아티팩트 게시
mvn deploy:deploy-file
을 사용하여 타사 Maven 아티팩트를 CodeArtifact 리포지토리에 게시할 수 있습니다. 이는 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 설명서의 타사 JAR을 원격 리포지토리에 배포하기 위한 가이드
CodeArtifact 리포지토리에서만 Maven 종속성을 다운로드
구성된 리포지토리에서 패키지를 가져올 수 없는 경우, 기본적으로 mvn
명령을 실행하면 Maven Central에서 패키지를 가져옵니다. mvn
이 CodeArtifact 리포지토리를 항상 사용할 수 있도록 mirrors
요소를 settings.xml
에 추가합니다.
<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 웹 사이트에서 다음 주제를 참조하세요.