한 프로젝트에 모든 패키지 저장

Tier: Free, Premium, Ultimate Offering: GitLab.com, Self-managed, GitLab Dedicated

여러분은 하나의 프로젝트 패키지 레지스트리에 모든 패키지를 저장할 수 있습니다. 코드를 저장하는 대신 해당 리포지터리를 사용하여 모든 패키지를 저장할 수 있습니다. 그런 다음 원격 리포지터리를 구성하여 GitLab의 프로젝트를 가리키도록 할 수 있습니다.

다음과 같은 이유로 이를 수행하고 싶을 수 있습니다:

  • GitLab에 패키지를 발행하려고 하지만 코드가 저장된 프로젝트와는 다른 프로젝트에 발행하고 싶을 때
  • 특정 부서의 모든 npm 패키지, 또는 모든 프라이빗 패키지를 한 프로젝트에 그룹화하고 싶을 때
  • 다른 프로젝트에 대한 패키지를 설치할 때 하나의 원격을 사용하고 싶을 때
  • 서드파티 패키지 레지스트리에서 패키지를 GitLab의 단일 장소로 이전하고 각 패키지에 대해 별도의 프로젝트를 설정할 필요가 없을 때
  • 모든 패키지를 하나의 프로젝트에서 빌드하도록 CI/CD 파이프라인을 구성하여, 패키지를 유효성을 검사할 담당자가 모두 한 곳에서 관리할 수 있도록 하고자 할 때.

예제 안내

이 기능에 특화된 기능은 없습니다. 대신, 각 패키지 관리 시스템의 기능을 활용하여 서로 다른 패키지 유형을 동일한 위치에 발행하고 있습니다.

여러 종류의 패키지를 한 GitLab 프로젝트에 저장

여러분이 모든 패키지를 호스팅할 프로젝트를 생성하는 방법을 살펴봅시다:

  1. GitLab에서 새 프로젝트를 생성하세요. 프로젝트에 코드나 콘텐츠가 필요하지 않습니다.
  2. 왼쪽 사이드바에서 프로젝트 개요를 선택하고, 프로젝트 ID를 메모하세요.
  3. 인증을 위해 액세스 토큰을 생성하세요. 패키지 레지스트리의 모든 유형은 다음을 사용하여 발행할 수 있습니다:

    프로젝트가 비공개인 경우, 패키지 다운로드에도 인증이 필요합니다.

  4. 로컬 프로젝트를 구성하고 패키지를 발행하세요.

여러분은 모든 종류의 패키지를 동일한 프로젝트에 업로드하거나, 패키지 유형이나 가시성 수준에 따라 작업을 분할할 수 있습니다.

npm

npm을 사용하는 경우 .npmrc 파일을 생성하세요. 프로젝트에 패키지를 발행할 적절한 URL을 추가하세요. 마지막으로 package.json 파일에 섹션을 추가하세요.

GitLab 패키지 레지스트리 npm 문서의 지침을 따르세요. 이후, npm publish를 사용하여 프로젝트에 npm 패키지를 발행할 수 있습니다. publishing packages 섹션에서 설명한 대로입니다.

Maven

Maven을 사용하는 경우 pom.xml 파일에 배포 섹션을 업데이트하세요. 이 업데이트에는 GitLab Maven Repository documentation에 설명된 프로젝트용 적절한 URL이 포함됩니다. 그런 다음 settings.xml 파일을 추가하고 액세스 토큰을 포함하세요. 이제 프로젝트에 Maven 패키지를 발행할 수 있습니다.

Conan

Conan을 위해 GitLab을 Conan 레지스트리 원격으로 추가해야 합니다. GitLab Conan Repository docs의 지침을 따르세요. 그런 다음 Conan 사용자로서 +로 구분된 (+) 프로젝트 경로를 사용하여 패키지를 생성하세요. 예를 들어 프로젝트가 https://gitlab.com/foo/bar/my-proj에 위치한 경우, conan create . foo+bar+my-proj/channel를 사용하여 Conan 패키지를 생성하세요. channel은 패키지 채널(예: stable 또는 beta)입니다.

패키지를 생성한 후에 패키지를 발행할 준비가 되었습니다. 예를 들어:

CONAN_LOGIN_USERNAME=<gitlab-username> CONAN_PASSWORD=<personal_access_token> conan upload MyPackage/1.0.0@foo+bar+my-proj/channel --all --remote=gitlab

Composer

Composer 패키지를 해당 프로젝트 외부에 발행할 수는 없습니다. 해당 기능을 구현하여 이러한 패키지를 다른 프로젝트에 발행할 수 있도록 하는 기능을 구현하기 위한 issue가 존재합니다.

기타 모든 패키지 유형

GitLab에서 지원하는 모든 패키지 유형은 동일한 GitLab 프로젝트에 발행할 수 있습니다. 이전 릴리스에서는 모든 패키지 유형을 동일한 프로젝트에 발행할 수 없었습니다.