Note
데이터 보존 기능을 갖춘 GitHub Enterprise Cloud에 Apache Maven 레지스트리를 사용할 수 없습니다.
GitHub Packages 인증
Note
GitHub Packages은(는) personal access token (classic)을(를) 사용하는 인증만 지원합니다. 자세한 내용은 "개인용 액세스 토큰 관리"을(를) 참조하세요.
프라이빗, 내부, 퍼블릭 패키지를 게시, 설치, 삭제하려면 액세스 토큰이 필요합니다.
GitHub Packages 또는 GitHub API에 인증하는 데 personal access token (classic)을 사용할 수 있습니다. personal access token (classic)을(를) 만들 때 필요에 따라 토큰의 범위를 다르게 할당할 수 있습니다. personal access token (classic)의 패키지 관련 범위에 대한 자세한 내용은 "GitHub 패키지에 대한 사용 권한 정보"을 참조하세요.
GitHub Actions 워크플로 내에서 GitHub Packages 레지스트리에 인증하려면 다음을 사용할 수 있습니다.
- 워크플로 리포지토리와 연결된 패키지를 게시하려면
GITHUB_TOKEN
을 사용합니다. - 다른 프라이빗 리포지토리(
GITHUB_TOKEN
는 액세스할 수 없음)와 연결된 패키지를 설치하기 위해 최소read:packages
범위의 personal access token (classic).
GitHub Actions 워크플로에서 사용되는 GITHUB_TOKEN
에 대한 자세한 내용은 “자동 토큰 인증”을 참조하세요.
personal access token을(를) 사용하여 인증
적절한 범위의personal access token (classic)으로 GitHub Packages에서 패키지를 게시하고 설치해야 합니다. 자세한 내용은 "GitHub 패키지 소개"을(를) 참조하세요.
personal access token (classic)을(를) 포함하도록 ~/.m2/settings.xml 파일을 편집하여 Apache Maven에서 GitHub Packages에 인증할 수 있습니다. ~/.m2/settings.xml 파일이 없으면 새로 만듭니다.
servers
태그에서 id
와 함께 자식 server
태그를 추가하여 USERNAME을 GitHub 사용자 이름으로, TOKEN을 personal access token(으)로 바꿉니다.
repositories
태그에서 자격 증명을 포함하는 server
태그에 추가한 id
에 리포지토리의 id
를 자격 증명을 매핑하여 리포지토리를 구성합니다. OWNER를 리포지토리를 소유한 개인 계정 또는 조직의 이름으로 바꿉니다. 대문자는 지원되지 않으므로 GitHub 사용자 이름 또는 조직 이름에 대문자가 포함되어 있더라도 리포지토리 소유자에는 소문자를 사용해야 합니다.
여러 리포지토리와 상호 작용하려는 경우 repositories
태그의 개별적인 repository
자식에 각 리포지토리를 추가하여 servers
태그의 자격 증명에 각 리포지토리의 id
를 매핑할 수 있습니다.
GitHub Packages는 Apache Maven의 SNAPSHOT
버전을 지원합니다. SNAPSHOT
아티팩트를 다운로드하기 위해 GitHub Packages 리포지토리를 사용하려면 사용하는 프로젝트의 POM 또는 ~/.m2/settings.xml 파일에서 스냅샷을 사용하도록 설정합니다.
<settings xmlns="http://maven.apache.org/SETTINGS/1.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.0.0
http://maven.apache.org/xsd/settings-1.0.0.xsd">
<activeProfiles>
<activeProfile>github</activeProfile>
</activeProfiles>
<profiles>
<profile>
<id>github</id>
<repositories>
<repository>
<id>central</id>
<url>https://repo1.maven.org/maven2</url>
</repository>
<repository>
<id>github</id>
<url>https://maven.pkg.github.com/OWNER/REPOSITORY</url>
<snapshots>
<enabled>true</enabled>
</snapshots>
</repository>
</repositories>
</profile>
</profiles>
<servers>
<server>
<id>github</id>
<username>USERNAME</username>
<password>TOKEN</password>
</server>
</servers>
</settings>
패키지 게시
기본적으로 GitHub는 패키지와 이름이 동일한 기존 리포지토리에 패키지를 게시합니다. 예를 들어 GitHub는 OWNER/test
라는 이름의 리포지토리의 com.example:test
라는 이름의 패키지를 게시합니다.
여러 패키지를 동일한 리포지토리에 게시하려는 경우 <distributionManagement>
pom.xml_ 파일의 _ 요소에 리포지토리의 URL을 포함할 수 있습니다. GitHub은 해당 필드에 따라 리포지토리와 일치시킵니다. 리포지토리 이름도 distributionManagement
요소의 일부이므로 동일한 리포지토리에 여러 패키지를 게시하는 추가 단계는 없습니다.
패키지를 만드는 방법에 대한 자세한 내용은 maven.apache.org 설명서를 참조하세요.
-
패키지 디렉터리에 있는 pom.xml 파일의
distributionManagement
요소를 편집하여 파일의 요소를 편집하여OWNER
를 리포지토리를 소유한 개인 계정 또는 조직의 이름으로,REPOSITORY
를 프로젝트를 포함하는 리포지토리의 이름으로 변경합니다.<distributionManagement> <repository> <id>github</id> <name>GitHub OWNER Apache Maven Packages</name> <url>https://maven.pkg.github.com/OWNER/REPOSITORY</url> </repository> </distributionManagement>
-
Publish the package.
mvn deploy
패키지를 게시한 후 GitHub에서 패키지를 볼 수 있습니다. 자세한 내용은 "패키지 보기"을(를) 참조하세요.
패키지 설치
GitHub Packages에서 Apache Maven 패키지를 설치하려면 패키지를 종속성으로 포함하도록 pom.xml 파일을 편집합니다. 지정된 리포지토리 소유자에 대해 리포지토리의 패키지를 설치하려면 https://maven.pkg.github.com/OWNER/*
와 같은 리포지토리 URL을 사용합니다. 프로젝트에서 pom.xml 파일을 사용하는 방법에 대한 자세한 내용은 Apache Maven 설명서의 POM 소개를 참조하세요.
-
GitHub Packages에 인증합니다. 자세한 내용은 “GitHub Packages에 인증”을 참조하세요.
-
패키지 종속성을 프로젝트 pom.xml 파일의
dependencies
요소에 패키지 종속성을 추가하고com.example:test
를 패키지로 변경합니다.<dependencies> <dependency> <groupId>com.example</groupId> <artifactId>test</artifactId> <version>1.0.0-SNAPSHOT</version> </dependency> </dependencies>
-
패키지를 설치합니다.
mvn install