공개 GitHub 리포지토리를 Maven 의존성으로 사용하는 방법

발행: (2025년 12월 14일 오후 08:36 GMT+9)
5 min read
원문: Dev.to

Source: Dev.to

Introduction

Apache Maven은 대부분의 Java 프로젝트의 핵심이며, GitHub Packages는 Maven 아티팩트를 호스팅하고 배포하는 편리한 방법을 제공합니다. 저장소가 공개되어 있더라도 원활하게 작동하도록 몇 가지 중요한 단계가 필요합니다.

GitHub Packages를 사용하면:

  • 소스 코드와 함께 Maven 아티팩트 호스팅
  • 패키지에 대한 접근 제어
  • 저장소와 가까운 위치에 의존성 유지
  • GitHub Actions와 원활한 통합

Note: GitHub Packages는 공개 Maven 패키지라도 인증이 필요합니다.

Prerequisites

  • GitHub 계정
  • Maven 패키지를 발행하는 공개 저장소
  • 로컬에 Maven 설치
  • pom.xml에 대한 기본적인 이해

Step 1 – Create a GitHub Personal Access Token (PAT)

GitHub Packages는 클래식 개인 액세스 토큰만 지원합니다.

범위목적
read:packages패키지를 다운로드하는 데 필요
write:packages패키지를 발행하려는 경우 필요

이 토큰을 안전하게 보관하세요 — Maven 비밀번호로 사용할 것입니다.

Configure Maven Credentials (settings.xml)

Maven은 ~/.m2/settings.xml에서 자격 증명을 읽습니다. 다음 내용을 포함하도록 파일을 만들거나 편집하세요:

<servers>
  <server>
    <id>github</id>
    <username>YOUR_GITHUB_USERNAME</username>
    <password>YOUR_PERSONAL_ACCESS_TOKEN</password>
  </server>
</servers>
  • <id> 값(github)이 중요합니다; Maven은 이 ID를 pom.xml에 정의된 저장소와 매칭합니다.

Add the GitHub Packages Repository to pom.xml

<repositories>
  <repository>
    <id>github</id>
    <url>https://maven.pkg.github.com/OWNER/REPOSITORY</url>
  </repository>
</repositories>

Example

<url>https://maven.pkg.github.com/mewan/my-public-repo</url>

Important: 저장소 소유자 이름은 실제 사용자 이름에 대문자가 포함되어 있더라도 소문자로 입력해야 합니다.

같은 GitHub 사용자 또는 조직에서 여러 패키지를 사용해야 하는 경우 와일드카드를 사용할 수 있습니다:

<url>https://maven.pkg.github.com/OWNER/*</url>

Declare the Dependency

다음과 같이 pom.xml에 의존성을 추가합니다:

<dependency>
  <groupId>com.example</groupId>
  <artifactId>my-library</artifactId>
  <version>1.0.0</version>
</dependency>

확인 사항:

  • 패키지 버전이 GitHub Packages에 존재해야 합니다.
  • artifactId는 소문자여야 합니다 (GitHub에서 강제합니다).

보통대로 Maven을 실행합니다:

mvn clean install

인증 및 설정이 올바르면 Maven이 GitHub Packages에서 패키지를 다운로드하고 빌드에 포함합니다.

Common Issues

문제설명
공개 패키지는 인증이 필요하지 않을 것이라고 가정모든 패키지는 PAT가 필요합니다.
settings.xmlpom.xml 사이의 <id> 불일치ID는 반드시 동일해야 합니다.
artifactId에 대문자 사용GitHub은 소문자 artifactId만 허용합니다.
GitHub Packages URL이 잘못됨URL이 https://maven.pkg.github.com/OWNER/REPOSITORY 형식인지 확인하세요.

이러한 세부 사항을 재확인하면 많은 시간을 절약할 수 있습니다.

Conclusion

GitHub Packages를 Maven 레지스트리로 사용하는 것은 특히 코드가 이미 GitHub에 있을 때 의존성을 관리하는 강력한 방법입니다. 공개 패키지에 대한 인증 요구가 다소 놀라울 수 있지만, 한 번 설정하면 워크플로우가 원활하고 신뢰할 수 있습니다. 이미 GitHub Actions를 사용하고 있다면 이 설정은 CI/CD 파이프라인에 자연스럽게 통합됩니다.

Happy coding! 🚀

Back to Blog

관련 글

더 보기 »

Maven의 내부

소개 오늘 나는 내 소중한 시간을 두 시간이나 잃었다. 그렇다. 그리고 모두 Maven https://maven.apache.org/ 때문에, 내 판단으로는, 특이하기 때문이다. 모든 것이 관련이 있다.