>  기사  >  백엔드 개발  >  Go에서 비공개 모듈 설정 및 활용

Go에서 비공개 모듈 설정 및 활용

Patricia Arquette
Patricia Arquette원래의
2024-10-22 17:16:03976검색

Setting up and utilizing private modules in Go

Go에서 비공개 모듈을 시작하는 것은 참조할 적절한 리소스가 없으면 어려운 작업이 될 수 있습니다. 이는 Go 모듈이 중앙 저장소에 저장되거나 제공되지 않지만 다른 저장소에서 가져올 수 있기 때문입니다. 예를 들면 Github이 있습니다.

공개 Go 패키지를 프로젝트로 가져오는 것은 단일 명령을 실행하는 것만큼 쉽습니다.

$ github.com/author/module-name을 다운로드하세요

반면에 Go에서 비공개 모듈을 설정하고 사용하려면 더 많은 단계가 필요합니다. 비공개 모듈을 사용하면 선택한 저장소에서 비공개 패키지를 호스팅하고 코드를 공개적으로 액세스할 수 있도록 만들지 않고도 사용할 수 있습니다.

비공개 모듈을 설정하려면 먼저 디렉터리를 만들고 해당 디렉터리로 이동하세요. 다음 명령을 실행하여 모듈을 초기화합니다.

$ go mod init github.com/author/module-name

다음 단계는 커밋하고, 모듈 버전 관리에 도움이 되는 커밋용 태그를 추가하고, 모듈을 저장소(이 경우 Github)에 푸시하는 것입니다.

이 예에서는 모듈이 프로젝트의 루트이지만 다른 Go 모듈이 루트이고 하위 모듈을 가질 수도 있는 경우가 있습니다. 하위 모듈을 사용하면 위 명령이 아래로 변환됩니다.

$ go mod init github.com/author/root-module/module-name

개인 저장소 가져오기
모듈은 이제 저장소에서 호스팅되지만 비공개이므로 프로젝트에서 모듈을 가져와 사용하려면 인증이 필요합니다. 프로젝트는 Github 작업 또는 dockerfile을 통해 로컬 환경 변수를 사용하여 인증하여 모듈에 액세스할 수 있습니다.

이 기사에서는 로컬 환경 변수를 활용하면서 개인 저장소에 액세스하는 방법에 중점을 둘 것입니다. 이는 다음 두 가지 옵션을 통해 달성할 수 있습니다.

이 두 가지 옵션 모두 GOPRIVATE 환경 변수 설정이 필수입니다. GOPRIVATE 환경 변수는 Go 명령이 가져오는 모듈이 공개인지 비공개인지 결정하는 데 도움이 됩니다. 여기에는 저장소 패키지 이름과 비교하여 검사되는 패턴이 포함되어 있으며 이 변수와 일치하는 패키지 이름은 공개 Go 캐시 서버를 통해 가져오지 않습니다.

모듈 디렉터리에서 아래 명령을 실행하여 GOPRIVATE 환경 변수를 설정하고 내보냅니다.

$ 내보내기 GOPRIVATE=github.com/author/module-name

또는 Go env 명령을 사용하여 아래와 같이 GOPRIVATE 변수를 설정할 수 있습니다.

$ go env -w GOPRIVATE=github.com/author/module-name
$ go env GOPRIVATE

*HTTP(S) 대신 SSH를 통해 가져오도록 git 구성
*

Go get 명령은 http 또는 https를 사용하여 git에서 모듈을 가져옵니다. SSH를 사용하여 모듈을 가져오도록 하려면 git 구성 파일을 편집하거나 다음 명령을 사용하면 됩니다.

$ go env -w GOPRIVATE=github.com/author/module-name
$ go env GOPRIVATE

*개인 액세스 토큰으로 Go 구성
*

GOPRIVATE 변수가 설정된 경우 이 옵션을 사용하려면 다른 두 변수를 설정하고 내보내야 합니다.

GITHUB_ACCESS_TOKEN 변수는 Github 설정에서 생성할 수 있는 개인 액세스 토큰으로 설정됩니다: 개인 액세스 토큰. 토큰에 이름을 지정하고 범위 섹션에서 저장소를 선택하세요.

설정하고 내보낼 다른 변수는 이 URL을 체크섬 데이터베이스와 비교해서는 안 된다는 점을 강조하는 localhost로 설정된 GONOPROXY 변수입니다.

$ git config --global url."git@github.com:author/module-name".insteadOf "https://github.com/author/module-name"

마지막으로 생성된 개인 토큰을 사용하도록 전역 git 구성을 업데이트합니다.

$ export GONOPROXY=localhost 
$ export GITHUB_ACCESS_TOKEN=<your-token>

이러한 구성이 완료되면 이제 위 옵션 중 하나를 사용하여 비공개 모듈을 가져와서 프로젝트에서 사용할 수 있습니다. 모듈을 가져오려면 go run 을 실행하세요. 프로젝트의 종속성 중 하나가 추가되거나 모듈 github 경로를 지정하는 go get 명령을 실행하여 모듈을 가져오는 프로젝트를 빌드하는 명령입니다.

위 내용은 Go에서 비공개 모듈 설정 및 활용의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.