>백엔드 개발 >Golang >Go 1.6에 내장된 벤더링 메커니즘으로 종속성 관리를 어떻게 단순화할 수 있나요?

Go 1.6에 내장된 벤더링 메커니즘으로 종속성 관리를 어떻게 단순화할 수 있나요?

Mary-Kate Olsen
Mary-Kate Olsen원래의
2024-12-23 12:42:15365검색

How Can Go 1.6's Built-in Vendoring Mechanism Simplify Dependency Management?

Go 1.6에서 공급업체를 사용하는 방법

Go 1.6에는 종속성 관리를 단순화하는 내장된 공급업체 메커니즘이 도입되었습니다. 벤더링을 사용하면 종속성이 프로젝트 디렉토리에 직접 포함되므로 오프라인 빌드가 가능하고 특정 버전에 대한 보다 세부적인 제어가 가능합니다.

./vendor 폴더 사용

./vendor를 사용하려면 먼저 복사하세요. $GOPATH/src에서 원하는 종속성을 공급업체 폴더로 복사합니다. 예를 들어 GitHub의 [goji](https://github.com/zenazn/goji) 라우팅 패키지를 사용하려는 경우:

mkdir -p $GOPATH/src/your-project/vendor/github.com/zenazn/goji
cp -r $GOPATH/src/github.com/zenazn/goji/ $GOPATH/src/your-project/vendor/github.com/zenazn/goji

종속성이 복사되면 go build and go와 같은 Go 도구가 사용됩니다. 실행하면 자동으로 ./vendor에서 필수 패키지가 있는지 확인합니다. 찾을 수 없으면 표준 $GOPATH/src 디렉터리로 돌아갑니다.

종속성 관리 도구 사용

소규모 프로젝트의 경우 종속성을 수동으로 복사할 수 있지만 종속성 관리 도구는 편리한 공급업체 폴더에서 종속성을 설치하고 관리하는 방법입니다. 인기 있는 두 가지 옵션은 다음과 같습니다.

  • [godep](https://github.com/tools/godep)
  • [govendor](https://github.com/kardianos/ govendor)

이 도구는 프로젝트를 검사하고 종속성을 식별한 후 $GOPATH/src에서 현재 디렉터리의 공급업체 폴더. 예를 들어 Godep을 사용하면

godep save ./...

Selective Vendoring

Vendoring을 사용하면 공급업체 폴더에 특정 종속성만 선택적으로 포함할 수 있습니다. 이 접근 방식을 사용하면 필요한 패키지를 특정 버전으로 고정하고 다른 패키지는 go get을 통해 업데이트할 수 있습니다.

선택적 공급업체의 이점

  • 버전 관리: 프로덕션에서 일관된 빌드를 보장하기 위해 종속성을 잠급니다.
  • 선택적 업데이트: 다른 종속성을 중단하지 않고 대상 업데이트를 허용합니다.

종속성 관리 남용

종속성 관리는 필수적이지만 과도하게 사용하지 않는 것이 중요합니다. 모든 종속성을 은밀하게 벤더링하면 정기적인 업데이트가 방해되고 잠재적으로 불필요한 위험이 발생할 수 있습니다.

위 내용은 Go 1.6에 내장된 벤더링 메커니즘으로 종속성 관리를 어떻게 단순화할 수 있나요?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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